2022-06-28-TIL TIL Today I Learned Redis 자꾸 로그아웃 되는 문제 로그인 세션을 Redis에 저장하는 구조에서 사용자가 자꾸 로그아웃된다면, 세션 데이터가 기대보다 일찍 사라졌거나 애플리케이션이 그 세션을 찾지 못한 것이다. 아래 두 글을 참고해 이 문제를 볼 때 확인할 지점을 정리했다. 지금은 두 글 모두 열리지 않아 링크만 남겨 둔다. 세션 만... 2022/06/28 2022-TIL
2022-06-27-TIL TIL Today I Learned Java Generics and Wildcard 제네릭 와일드카드에서 가장 헷갈리는 것은 ? extends T와 ? super T 중 무엇을 쓸지다. Java 튜토리얼의 와일드카드 사용 지침은 변수를 “in”과 “out”으로 나눠 생각하라고 한다. “in” 변수는 코드에 데이터를 제공한다. copy(src, de... 2022/06/27 2022-TIL
2022-05-24-TIL TIL 2022-05-24-TIL Today I Learned JPA 연관관계 JPA 연관관계 매핑은 객체의 참조와 테이블의 외래 키를 연결하는 작업이다. 객체는 양쪽에서 서로를 참조할 수 있지만 테이블에서는 외래 키 하나로 관계가 표현되므로, 양방향 관계에서는 둘 중 어느 쪽이 외래 키를 관리할지 정해야 한다. 외래 키를 가진 쪽이 연관관계의 주인이고... 2022/05/24 2022-TIL
2022-05-23-TIL TIL Today I Learned Java Stream Inner Join DB에서 가져온 두 리스트를 키로 이어 붙여야 할 때가 있다. SQL이라면 INNER JOIN으로 끝나지만, 서로 다른 저장소에서 가져온 데이터라면 자바 코드에서 합쳐야 한다. 가장 먼저 떠오르는 방법은 이중 반복이다. 한쪽 리스트의 각 원소마다 다른 쪽 리스트 전체를 훑어 키... 2022/05/23 2022-TIL
2022-05-20-TIL TIL 2022-05-20-TIL Today I Learned REST API Authorization Best Practices Stack Overflow 블로그 글이 정리한 REST API 인증·인가 원칙은 다음과 같다. 모든 API는 TLS 위에서 제공한다. 사용자 인증은 비밀번호를 직접 관리하기보다 OAuth2와 OpenID Connect로 외부... 2022/05/20 2022-TIL
2022-05-18-TIL TIL 2022-05-18-TIL Today I Learned Multipart File Upload in Spring Boot FE에서 기본적으로 확장자 및 용량이 제한되어 오겠지만, BE에서도 용량에 대한 검증이 필요하다. 스프링 부트에서는 application.properties 나 application.yml로 설정이 가능하다. 하지만 주의할 점... 2022/05/18 2022-TIL
2022-05-17-TIL TIL Today I Learned Boolean Field in API API 응답이나 요청에 isActive: true 같은 boolean 필드를 두면 처음에는 간단하다. 문제는 상태가 둘에서 셋으로 늘어날 때다. 예를 들어 isActive만 있던 회원에 “휴면”이나 “정지” 상태가 추가되면, boolean 필드를 하나 더 만들거나(isSuspende... 2022/05/17 2022-TIL
2022-05-13-TIL TIL Today I Learned CQRS CQRS(Command Query Responsibility Segregation)는 데이터를 바꾸는 쪽(command)과 읽는 쪽(query)에 서로 다른 모델을 쓰는 패턴이다. 마틴 파울러의 CQRS 글은 이를 정보를 갱신하는 모델과 읽는 모델을 다르게 쓸 수 있다는 개념으로 설명하면서, 어떤 상황에서는 이... 2022/05/13 2022-TIL
2022-05-11-TIL TIL 2022-05-11-TIL Today I Learned CORS CORS(Cross-Origin Resource Sharing)는 브라우저가 다른 출처(origin)의 리소스를 요청할 때, 서버가 응답 헤더로 허용 여부를 알려 주는 HTTP 헤더 기반 메커니즘이다. 출처는 스킴, 도메인, 포트 세 가지로 정해지고 경로는 포함하지 않는다. http... 2022/05/11 2022-TIL
2022-05-10-TIL TIL 2022-05-10-TIL Today I learned Spring Boot Admin Health Check 처럼 API가 살아있는지를 전체적으로 모니터링 할 수 있는 화면을 제공해주는 웹 페이지이다. 화면에 보여지는 정보는 Spring Boot Actuator를 통해 받은 정보이다. 구조는 서버와 클라이언트로 나뉜다. Admin 서버는 별도... 2022/05/10 2022-TIL