TIL 51

250220 TIL Auth 구성 & 단위 테스트 하면서 자주 나오는 issue

Auth  JWT 구성 시 1️⃣ Jwts.parserBuilder() 사용 오류 해결 → Jwts.parser().verifyWith(secretKey).build() 적용2️⃣ JWT 검증 시 parseSignedClaims() 사용 (parseClaimsJws() 대신)3️⃣ Clock Skew 설정 추가하여 만료된 토큰 판별 오류 방지 단위테스트 시 나오는 이슈 1️⃣ Spring Security 충돌 방지 (@WithMockUser, @Import(SecurityConfig.class)) 2️⃣ Mocking 충돌 해결 → @MockBean 문제 방지 및 직접 API 호출 방식으로 변경 3️⃣ 테스트 실행 순서 독립성 유지 (@BeforeEach에서 사용자 미리 등록) 4️⃣  데이터 충돌 방지..

TIL 2025.02.20

230905 TIL

오늘 할 일 (계획) 기술 면접 준비 최종 프로젝트 진행 오늘 한 일 최종 프로젝트 중간발표 정리 최종 프로젝트 진행 스톱워치 저장 시 각 User 별로 user_id 통해 저장 되도록 설정 스톱워치 @AuthenticationPrincipal 사용하여 Controller, Service, ServiceImpl 변경 AccumulatedTime 에 저장되는 데이터 Sec 단위까지 저장되도록 변경 Spring ) Spring Security 에 @AuthenticationPrincipal 사용시 예제 TIL 작성 기술면접 준비 JWT, Refresh, Access Token에 대해서 설명 JWT (JSON Web Token) 정보를 안전하게 전송하기 위한 암호화된 문자열. Header.Payload.Sig..

TIL 2023.09.05

230904 TIL

오늘 할 일 (계획) 기술 면접 준비 최종 프로젝트 중간발표 (발표자) 오늘 한 일 최종 프로젝트 중간발표 중간발표 회고, 피드백 기술 면접 준비 토큰과 세션의 차이점 차이점 1. 사이즈 세션 < 토큰 세션을 사용시 주고받는 session id의 크기는 매우 작습니다. 반면 (JWT기준) 토큰은 같은 데이터를 담고 있어도 그에 비해 크기가 큽니다. 차이점 2. 안전성 세션 세션은 서버측에서 저장/관리하기 때문에 상대적으로 온전한 상태를 유지하기 유리합니다. 하지만 여전히 공격의 위험이 있기에 유효기간, HttpOnly, Secure 옵션 등을 주어 쿠키에 저장합니다. 토큰 반대로 토큰은 웹 브라우저측 (local storage, 혹은 쿠키 등)에 저장되기 때문에 공격에 노출될 가능성이 더 큽니다. 이런 ..

TIL 2023.09.05

230902 TIL

오늘 할 일 (계획) 기술 면접 준비 오늘 한 일 기술 면접 준비 OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. 계층을 나눈 이유는 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문이다. 흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다. 응용 계층 응용 계층(Application Layer, 7계층)에서는 OSI 7계층 모델에서 최상위 계층으로 사용자가 네트워크 자원에 접근하는 방법을 제공한다. 그리고 계층 7은 최종적으로 사용자가 볼 수 있는 유일한 계층으로 모든 네트워크 활동의 기반이 되는 인터페이스를 제공하는데, 즉 사용자가..

TIL 2023.09.03

230901 TIL

오늘 할 일 (계획) 기술 면접 준비 최종 프로젝트 프론트 백엔드 구성 / 연결 오늘 한 일 최종 프로젝트 스톱워치 기능 완성 기술 면접 준비 GET 방식 개념: GET은 요청하는 데이터가 HTTP URL의 일부로 포함되어 전송됩니다. 일반적으로 조회 작업에 사용됩니다. 데이터 흐름: 사용자가 브라우저에서 URL을 입력하거나 링크를 클릭합니다. 브라우저가 해당 URL에 포함된 파라미터와 함께 서버에 요청을 보냅니다. 서버가 요청을 처리하고 필요한 정보를 응답으로 보냅니다. 브라우저가 응답을 받아 사용자에게 표시합니다. POST 방식 개념: POST는 요청 데이터를 HTTP 메시지 본문에 담아 전송하며, 서버의 상태를 변경하거나 데이터를 추가하는 작업에 사용됩니다. 데이터 흐름:사용자가 웹 폼에 데이터를 ..

TIL 2023.09.03

230831 TIL

오늘 할 일 (계획) 기술 면접 준비 최종 프로젝트 프론트 백엔드 구성 / 연결 오늘 한 일 최종 프로젝트 프론트 백엔드 결합, Dto 등 필요한 부분 보완,추가 기술 면접 준비 ORM을 사용하면서 쿼리가 복잡해지는 경우에는 어떻게 해결하는게 좋을까요? JPA 같은 ORM은 정적인 상황에서 사용하는걸 권장하기 때문에 복잡한 쿼리와 동적인 쿼리에 대한 문제가 발생할 수 있습니다. 그럴때는 문자열 형태로 직접 쿼리문을 작성하는 JPQL이나 자바코드로 작성하는 Querydsl을 사용할 것을 권장하고 있습니다.

TIL 2023.08.31

230830 TIL

오늘 할 일 (계획) 기술 면접 준비 최종 프로젝트 프론트 구성 오늘 한 일 최종 프로젝트 - 스톱워치 프론트엔드 구성 , 메인 디자인과 결합 기술 면접 준비 대용량 트래픽 처리 대용량 트래픽 발생 대응 방법은 서버 확장, 캐싱, 비동기 처리 등이 있습니다. 그중에서 가장 일반적인 방법인 서버 확장에는 수직확장(scale-up)과 수평확장(scale-out) 이 있습니다. 수직 확장(scale-up)은 한 대의 서버를 구성하는 부품(CPU, RAM, DISK 등..)을 추가하거나 업그레이드하여 서버 자체의 처리 능력을 향상시키는 방법입니다. 하지만 성능 확장에는 한계가 존재합니다. 수평확장(scale-out)은 서버의 개수를 늘려서 많은 트래픽을 여러 서버가 나눠서 처리하는 방법입니다. 이때 한 서버에만..

TIL 2023.08.31

230828 TIL

오늘 할 일 (계획) 기술 면접 준비 CS 공부 오늘 한 일 기술 면접 준비 DI(Dependency Injection)란 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로, 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다. DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아진다. IoC(Inversion of Control)란 "제어의 역전" 이라는 의미로, 말 그대로 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미한다. IoC는 **제어의 역전이라고 말하며, 간단히 말해 "제어의 흐름을 바꾼다"**라고 한다. 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있게 하여..

TIL 2023.08.29

230826 TIL

오늘 할 일 (계획) 기술 면접 준비 오늘 한 일 기술 면접 준비 HTTP(하이퍼텍스트 전송 프로토콜)와 HTTPS(보안 소켓 계층)는 모두 인터넷을 통한 데이터 통신을 위한 프로토콜이지만, 주요한 보안 차이가 있습니다. 보안: HTTP: 데이터는 암호화되지 않고 평문으로 전송됩니다. 이는 해커가 데이터를 가로챌 수 있고, 중간에서 데이터 변조가 가능하다는 의미입니다. HTTPS: 데이터는 SSL/TLS(보안 소켓 계층/전송 계층 보안) 프로토콜을 사용하여 암호화되어 전송됩니다. 이는 데이터의 기밀성과 무결성을 보호하며, 중간에서의 데이터 가로채기나 변조를 어렵게 만듭니다. 암호화: HTTP: 암호화되지 않은 상태로 데이터가 전송되므로, 민감한 정보(비밀번호, 신용카드 정보 등)를 전송할 때 보안이 취약..

TIL 2023.08.29