분류 전체보기
[JavaScript 기초] 0. JavaScript의 역사와 현재
📌 Outline 이번에 회사에 처음 입사하게 되면서 JavaScript에 대해 공부하게 되었습니다. 회사에 들어가자마자 새로운 언어를 공부하게 되어 당황스러웠지만, 기존에 토이 프로젝트를 진행하면서 적지 않게 써본 언어였기 때문에 공부하는데 크게 부담이 되진 않은것 같습니다. 기본적으로는 회사에서 물려받은 책을 통해 공부하였고, 부가적으로 이해가 필요했던 부분들은 인터넷에 나와있는 자료를 찾아보면서 공부하였습니다. 해당 카테고리에서는 다른 언어와 유사한 부분들을 과감하게 생략하고, JavaScript만이 가지고 있는 특징들에 대해서만 정리하고자 합니다. 필자의 경우 새로운 언어를 공부할 때, 바로 문법 공부로 넘어가기 보다는 조금 지루하더라도 그 언어의 탄생 배경을 이해하고 넘어가는 것이 좋다고 생각하..
[Baeg-won Clothing Gallery] 9. PROFILE 페이지 구현
📝 Outline 회원정보 수정을 위한 Profile 페이지 구현을 완료했다. 아마 지금까지 구현한 페이지들 중에서 가장 많은 로직과 코드가 들어간 페이지가 아닐까 싶다. 구현 디자인은 다음과 같다. 해당 페이지에서는 Username을 제외한 계정 정보를 수정할 수 있으며, 배송지를 추가할 수도 있다. Account와 Address 입력 데이터 모두 유효성 검사가 포함되어 있으며, 당연하게도 유효성 검사를 통과하지 못할 경우 데이터가 DB에 반영되지 않는다. 📝 Review 대부분의 로직이 클라이언트 쪽에 집중되어 있고, 주로 사용자의 편의를 위해 작성된 로직이 대부분이라 코드의 양은 많았지만 사실상 핵심적인 부분은 크게 두 가지 정도로 나눌 수 있을 것 같다. 하나는 유효성 검사, 다른 하나는 카카오 ..
[Baeg-won Clothing Gallery] 8. WISH 페이지 구현
📝 Outline Cart 페이지 구현에 이어 Wish 페이지 구현이 완료되었다. 해당 페이지는 사용자가 즐겨찾기와 같은 개념으로 상품을 저장할 수 있도록 해주는 페이지로써 장바구니 페이지와는 다르게 단순히 사용자가 찜한 상품 리스트를 출력해주는 기능을 수행한다. 페이지 디자인은 다음과 같다. 즐겨찾기 기능은 상품 상세보기 페이지 하단에 있는 아래 버튼을 클릭할 시 동작하도록 구현하였다. 해당 버튼은 토클 형식으로 동작한다. 즉, 이미 즐겨찾기가 되어있는 상태에서 해당 버튼을 클릭할 경우에는 즐겨찾기가 해제되는 식이다. 페이지 동작은 다음과 같이 이루어진다. 📝 Review 💬 Wish 우선 Wish 페이지 구현을 위한 Wish 엔티티를 새로 구현해주었다. @Entity @Getter @AllArgsCo..
CascadeType.REMOVE vs @OnDelete(action = OnDeleteAction.CASCADE)
프로젝트를 진행하다가 연관관계가 있는 엔티티를 연쇄적으로 제거하기 위해 사용되는 두 가지 방식에 대해 알게되었고, 여기서 새롭게 알게 된 내용을 간단히 정리해보려고 한다. 주관적인 내용이 많이 포함되어 있을 수 있음 💡 CascadeType.REMOVE와 @OnDelete(action = OnDeleteAction.CASCADE) 둘의 가장 큰 차이점은 JPA에 의해 처리되느냐, DDL에 의해 DB 단에서 처리되느냐이다. 전자의 방식을 취할 경우, JPA에 의해 외래 키를 찾아가며 참조하는 레코드를 제거해주게 된다. 따라서, JPA 상에서는 참조하고 있는 레코드의 개수만큼 DELETE 쿼리가 생성된다. 후자의 방식을 취할 경우, 데이터베이스 자체에서 on delete cascade 제약조건이 걸리게 된다..