TIL 70

TIL 2024-11-27 (Spring 심화 - 활용)

1 ) 학습한 내용BeanAPI 예외처리JPQLfetch joinJPA 와 JPQL  Bean생명주기Spring Container 초기화Bean 인스턴스 생성의존성 주입초기화 메서드 호출Bean 사용소멸 메서드 호출Bean 소멸속성Bean이 Spring 내부적으로 구현된 코드에 의존하지 않는다.메서드 이름을 자유롭게 설정할 수 있다.외부 라이브러리에도 초기화, 종료 메서드를 적용할 수 있다.@PostConstructBean이 생성되고 의존성 주입이 완료된 후에 호출되는 메서드를 지정주로 초기화 작업을 할 때 사용Bean ScopeSingleton(싱글톤)기본으로 설정되는 스코프.Spring 컨테이너 내에서 Bean이 하나만 생성되고 모든 요청이 같은 객체를 사용상태를 가지면 안된다.prototype요청할..

TIL/Spring 2024.11.27

TIL 2024-11-26 (Spring 심화)

1 ) 오늘 학습한 내용HttpMessageConverterSpring 내부 구조Converter, Formatter1 : N 연관관계1 : 1 연관관계N : M 연관관계상속관계 매핑Proxy지연로딩, 즉시로딩영속성 전이JPA와 Transaction  HttpMessageConverter사용처HTTP 요청 : @RequestBody, @HttpEntity, @RequestEntityHTTP 응답 : @ResponseBody, @HttpEntity, @ResponseEntity우선 순위byte[]StringJSON Spring 내부 구조ArgumentResolverHTTP 요청이 컨트롤러 메소드에 전달될 때 각 파라미터를 알맞은 객체로 변환하는 인터페이스ReturnValueHandler컨트롤러 메서드가 반..

TIL/Spring 2024.11.26

[KPT 회고록] (project : todo-log)

1 ) Project : todo - log KPT Keep- 깃헙 컨벤션을 잘 지킨 부분- 팀원 간의 피드백에 따른 개선과 반영이 빨랐던 것- 모든 팀원들이 책임감 있게 프로젝트 수행- 효율적인 역할 분담- 원활한 소통Try- 프로젝트 완성도 올리기     - 좋아요 순 조회 논리적 에러 수정     - 피드 조회 시 댓글 내용 포함- API 명세서 프로그램 적극 활용 및 사이트 검색 Ex) 포스트맨- 와이어 프레임 제작 사이트 검색 및 사용법 탐색Problem- 프로젝트에 완성도에 대한 아쉬움- API 명세서 및 와이어 프레임 작성 사이트 활용 2 ) 팀원별 프로젝트 소감. 팀장 천경환 : 이번 팀 프로젝트를 진행하며 팀원들과의 소통이 얼마나 중요한 지 더욱 리마인드가 되었으며 협업에서 깃헙을 처음 ..

TIL/Project 2024.11.25

TIL 2024-11-21 (todo-log 3일차)

1 ) 프로젝트 진행정도피드(feed) CRUD피드 생성피드 조회단건 조회전체 조회피드 수정피드 삭제 (2일차 완료)친구 관리 기능팔로우 기능팔로워 목록 조회팔로잉 목록 조회언팔로우팔로잉의 게시글 조회생성순업그레이드 뉴스피드 기능전체 피드 수정순으로 조회 (3일차 완료)좋아요 순으로 조회날짜별 기간 검색 기능 Repository, Entity 생략. 팔로우 기능 구현팔로우하기Controller@PostMapping("/{followerNickname}/{followingNickname}") public ResponseEntity followUser( @PathVariable String followerNickname, @PathVariable String followingNickname..

TIL/Project 2024.11.21

TIL 2024-11-20 (todo-log 2일차)

1 ) 프로젝트 진행도피드(feed) CRUD피드 생성피드 조회단건 조회전체 조회피드 수정피드 삭제 (2일차)친구 관리 기능팔로우 기능팔로워 목록 조회팔로잉 목록 조회언팔로우팔로잉의 게시글 조회생성순업그레이드 뉴스피드 기능전체 피드 수정순으로 조회좋아요 순으로 조회날짜별 기간 검색 기능뉴스피드 CRUD 기능구현게시물 작성게시물 조회 (단건, 전체)게시물 수정 (조건 확인)게시물 삭제 (조건 확인)협업 프로젝트 진행을 하며 느낀 점.서로 역할 분담을 하였어도 필요한 클래스와 필드들이 있기에 누군가는 작업이 멈추는 상황 발생.역할 분담을 잘 하였어도 이 문제는 완벽하게 해결되지 않을 것 이라고 생각. 뉴스피드 CRUD 기능 구현 뉴스페드 조회 기능 Pageable 사용문제 발생페이징 조회를 하니 Join했던..

TIL/Project 2024.11.20

TIL 2024-11-19 (todo-log)

1 ) todo-log'todo' 스페인어로 모두, 전체 라는 뜻과 'log' 기록이라는 뜻을 합쳐 만든 모든 기록을 보여주는 뉴스피드 프로젝트. 2) 첫 날 진행도프로젝트 아이디어 구성와이어 프레임 작성ERD 작성API 명세서 작성업무 분담팀 노션 작성 프로젝트 아이디어 구성팀원들과 소통하며 각자 어떤 컨셉의 뉴스피드 또는 이름 정해오기!Sprout, '새싹' 이라는 의미로 현재 우리도 자라나는 새싹 개발자라는 의미로 개발자 취준생들의 뉴스피드 컨셉음악관련 뉴스피드, 게시글을 나중에 하나씩 모으면 플레이리스트가 되는 뉴스피드 컨센뉴스피드에 카테고리를 추가해 모든 컨셉의 뉴스피드를 볼 수 있도록 하자는 컨셉.3번 의견이 모두의 의견을 수용할 수 있으며 제일 괜찮다는 의견이 많아 수용.와이어 프레임 작성백..

TIL/Project 2024.11.19

TIL 2024-11-18 (Cookie/Session)

1) 학습한 내용CookieSession 알고리즘 코드카타( Java : 숫자 문자열과 영단어 )https://github.com/GyeonghwanCheon/codetestCookie사용하는 이유HTTP는 Stateless, Connectionless 특성을 가지고 있다.Client가 재요청시 Server는 이전 요청에 대한 정보를 기억하지 못한다.로그인과 같이 상태를 유지해야 하는 경우가 발생한다.Request에 사용자 정보를 포함하면 해결된다.브라우저를 완전히 종료한 뒤 다시 열어도 사용자 정보가 유지되어야 한다.로그인 성공시 응답set-Cookie로그인시 전달된 ID, Password로 User 테이블 조회하여 일치 여부 확인일치한다면 Set-Cookie를 활용해 Cookie에 사용할 값 저장Co..

TIL/Spring 2024.11.18

Trouble Shooting ( Calender_JPA)

1 ) 배경모든 필수 구현 완료 후 마지막 로그인 구현하는 도중 LoginRepotory 파일을 만들어 코드를 구현하려고 하였으나,  2) 전개 & 위기내가 직접 생산한 유저의 정보를 가져와 email, password 데이터를 가져와서 비교하는 코드를 구현하는데 계속 DB의 데이터를 가져오지 못하던가, 또는 스스로 제대로하고 있는지 조차 모르는 상황 발생.  3) 절정LoginRepository를 class 형식의 파일 방식으로도 접근해보았고, Interface 파일 형식으로도 접근해보았으나 내가 직접 저장했던 데이터를 DB에서 제대로 못 가져오는 것 같았으며, 로그인 성공했을 시 return 값 또한 맞는지 의문.다양한 방식으로 접근하다가 데이터 충돌까지 일어나는 상황 발생.  4) 결말stream(..

TIL/Project 2024.11.15

TIL 2024-11-13 (Spring 숙련 - 2주차)

- 학습한 내용 CookieSessionTokenJWTFilter   Cookie주로 사용자 세션 관리(로그인, 장바구니, 접속시간)나 광고 트래킹(사용자 행동) 등의 목적으로 사용.웹 브라우저에 저장되는 데이터Cookie에 담겨있는 값으로 인증/인가 를 진행한다.서버가 클라이언트의 상태를 기억하도록 도와준다.로그인 상태 유지 등에 활용된다.보안에 취약하다민감한 정보를 저장하지 않아야한다.사용자 임의 수정이 가능하다. Session서버에서 중요한 정보를 보관하며 로그인을 유지하는 방법SessionId를 탈취하여도 민감한 정보는 없다.  만료 시간을 설정해서 탈취 문제를 최소화한다.HttpSession은 최근 Session을 요청한 시간을 기준으로 만료 시간을 유지한다.동작 순서 Token인증/인가 과정에..

TIL/Spring 2024.11.13

TIL 2024-11-12 (Spring 숙련 - 1주차)

1 ) 학습한 내용SOLID 원칙과 Spring 객체 지향Spring ContainerSpring BeanIOC/DI싱글톤 패턴Spring Bean 등록의존관계 주입Validation SOLID 원칙 - 객체 지향 설계의 5가지 기본 원칙, 소프트웨어 설계에서 유지보수성, 확장성, 유연성을 높이기 위한 지침을 제공.종류단일 책임 원칙 SPR (Single Responsibility Principle)개방 폐쇄 원칙 OCP (Open Closed Principle)리스코프 치환 원칙 LSP (Liskov Substitution Principle)인터페이스 분리 원칙 ISP (Interface Segregation Principle)의존관계 역전 원칙 DIP (Dependency Inversion Princ..

TIL/Spring 2024.11.12