본문 바로가기

항해 99 본과정 TIL

(4)
실전 프로젝트 1. 시작 드디어 우리는 실전프로젝트 주차로 들어가게 되었다. 지금까지 블로그를 적고 싶었지만, 이것저것 정신없는 와중에 챙기질 못했다. 그래도 지금부터라도 다시 적는다는 마음으로 적어봐야겠다. 우리조는 커핑이라는 웹사이트를 만들고 있다. 커핑은 근처 지역에서 좋아하는 원두를 찾아 음료를 즐길 수 있는 원두 기반 카페 검색 서비스이다. 2. 유저 플로우 3. 백엔드 역할 분담 나는 여기서 카카오로그인, 회원가입, 로그아웃 기능을 맡았다. 앞으로 내가 구현하면서 겪었던 트러블 슈팅들을 적어보겠다.
스프링 과제 - 연관관계 트러블슈팅 1. 트러블 게시물과 댓글의 연관관계를 설정했다. 댓글은 게시물이 있어야 달 수 있기 때문에 게시물이 삭제되면 같이 삭제가 되어있어야 한다. 하지만 게시물을 삭제했을때 댓글 객체가 삭제되지 않고 남아있어 오류가 발생했다. 2. 해결 과정 연관관계에서 "orphanRemoval = true"를 넣어주며 해결했다. comment는 memo의 자식객체이다. memo게시물이 삭제가 되면 댓글도 같이 삭제가 되어야하는데, memo게시물을 삭제했을때 댓글 객체는 NULL상태로 남아있다. 이 NULL상태를 delete 삭제해주는 것이 "orphanRemoval = true"이다. >> NULL값으로 변한 객체 - 고아객체 >> 고아객체를 delete해주는 메소드 -->"orphanRemoval = true"
항해 주특기 스프링 스프링 주 LV1과제 -로그인 기능이 없는 게시물 만들기가 스프링 1주차 과제로 주어졌다. 정말 아무것도 모르는 상태에서 만들려고 하니까 어려움이 많았다.. -과제를 진행하면서 중요했던 부분 어려웠던 부분을 정리하겠다. ENTITY를 그대로 반환하지 말고 DTO에 담아서 반환하기 Entity - DB 테이블과 매핑되는 클래스로 데이터베이스의 테이블에 존재하는 컬럼들을 필드로 가지는 객체 - 데이터베이스의 persistent의 목적으로 사용되는 객체 -> requset나 response 값을 전달하는 클래스로 사용x - 여러 서비스나 로직들이 Entity 클래스를 기준으로 동작하기 때문에 변경하지 않는게 좋다. - Setter 메소드 사용 지양 -> 변경되지 않는 인스턴스에 대해서도 setter로 접근이 ..
항해 99 알고리즘 주 -서론- 오늘부터 자바 알고리즘 주차가 시작된다. 프로그래머스 0~1레벨 문제들을 각조원끼리 페어프로그래밍을 했다. 알고리즘 문제들을 풀면서 조원들에게 많은 도움을 받았고, 새로 배운 알고리즘 기술들, 라이브러리들이 있었다. 오늘 TIL에서는 알고리즘 문제중 새로 알게 된 것, 어려웠던 부분을 적어볼 것이다. -문자열을 정수로 바꾸기(프로그래머스)- 이 문제는 문자열 s를 매개변수로 받아와 int형으로 변환해서 반환하는 문제이다. 언뜻보면 쉬어 보일수도 있는데, 신경써야 할 부분들이 있다. 우선 코드를 살펴보면서 부족했던 부분, 새롭게 알게된 부분을 살펴보자. -문제점과 해결- 우선 헤메었던 부분은 (-부호)를 신경쓰는 곳이다. 여기서 어떻게 이 부호를 떠와야지?? 하는 의문이 생겨 구글링 한 결과 su..