2025 년 02 월 19 일 TIL
·
TIL
2025 년 02 월 19 일 TIL✅ 오늘 할일- CS책 독서- 디자인 패턴프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계등을 이용하여 해결할 수 있도록 하나의 규약 형태로 정의한 것- 싱글톤 패턴하나의 클래스는 하나의 인스턴스를 가지는 패턴보통 데이터베이스 연결 모듈에 사용한다.장점 : 하나의 인스턴스를 사용해 다른 모듈들이 공유해 사용하여 인스턴스 생성 비용을 줄일 수 있다단점 : 미리 생성된 인스턴스를 기반으로 구현하는 패턴이라 테스트마다 독립적인 인스턴스를 만드는것에 제한된다, 의존성이 높아진다해결 방법 Synchronized인스턴스를 반환하기 전 까지 격리 공간에 놓기위해 Synchronized 로 잠금최초로 접근한 스레드가 해당 메서드를 호출 시 다른 스레드가 접근하지 못하도록..
2025년 02월 18일 TIL
·
TIL
2025 년 02 월 18 일 TIL✅ 오늘 할일- JWT 공부- DataBase 공부JWTJWT는 구조를 보면HEADER (사용된 알고리즘, 이게 토큰인지 명시해주는 TYPE )PAYLOAD (정보가 들어가는데 여기에는 다른 사람이 보아도 상관없는 값들이 들어가야한다, 예를 들면 이름, 이메일, ROLE, 생성일, 만료일 )SIGNATURE (사용된 알고리즘에 따른 생성된 암호문)나중에도 활용할려고 정리해놓은 DataBase컬럼 출력 시 사칙 연산을 넣거나 단어를 바꾸거나 공백을 제거 할수 있다.- 문자를 이어 붙일 때 : CONCAT(컬럼,컬럼) 하지만 Oracle 이나 Postgres 같은 데이터 베이스는 || 로 표현 - 좌우 공백을 제거 할 때 : TRIM(컬럼)- 단어를 바꿔서 출력할 때 : ..
2025년 02월 17일 TIL
·
TIL
✅ 오늘 할일- 자기 소개서 작성- JWT 공부- 공부한것을 가지고 개인 프로젝트 활용 JWT로그인(인증) : 로그인 요청을 받은 후 세션 방식은 서버 세션이 유저 정보를 저장하지만 JWT 방식은 토큰을 생성하여 응답기본적으로 Security는 Form Login 방식이 디폴트로 되어 있다 하지만 jwt 방식을 사용할려면 FormLogin 방식을 지운다 하지만 FormLogin 방식의 기본적Filter는 UsernamePassword Authentication Filter(클라이언트가 사용자 이름과 비밀번호를 입력하면 해당요청이 이 필터로 전달됨) 가 사용되지만 지우기 때문에 위 필터를 상속받아 커스터마이징을 해야한다.그 후 AuthenticationManager 도 커스터마이징을 해 인증을 위해 Rep..
[TIL] 스파르타 백엔드 캠프
·
TIL
오늘할일더보기1주차~3주차 강의1주차프로젝트 셋팅- complie 시점 의존성 : 프로젝트를 컴파일 할때 사용, 즉 해당 라이브러리의 API를사용할 수 있습니다.- runtime 시점 의존성 : 애플리케이션을 실행할 때 사용됩니다. 즉, 실행 시 에도 라이브러리가 필요 - implementation 옵션 : 직접적인 의존성을 추가할 때 사용, 이는 특정 라이브러리나 모듈이 프로젝트 컴파일 시 필요하지만, 해당 라이브러리가 프로젝트 외부로 공개될 필요가 없다는 것을 의미-> 은닉성 : implementation으로 추가된 의존성은 다른 프로젝트 모듈에서 직접 접근할수 없습니다 이는 모듈 간의 캡슐화를 도와줍니다- runtimeOnly 옵션 : complie 시점에는 필요없고 runtime 시점에만 필요한 ..
[TIL] 스파르타 백엔드 캠프 & 트러블 슈팅
·
TIL
나는 위 사진 코드와 달리 @PathVariable Long id를 요청하지 않고 세션 아이디를 가지고 유저를 찾곤 했었다 문제: 수준별 강의를 듣던중  내가 하던 방법이 잘못되었다는 것을 알았다.요청한 id로 찾은 userId의 값과 세션 아이디의 값을 비교해줘야한다는 것도 알게 되었다. Status가 enum 타입인데 어떻게 적용할지에 대해 의문이 생겼다 JPA가 ENUM 타입을 매핑 시키는 방법:@Enumerated(EnumType.STRING)을 사용하여 ENUM타입을 String으로 저장해준다@Enumerated(Enum Type.ORDINAL) : Enum순서 값을 DB에 저장하는 것도 있지만 추천하지 않는 방식이라고 한다. 이런 방식으로 Repository의 파라미터로 값을 보낸다 그에 맞는..
[TIL] 스파르타 백엔드 캠프 & 트러블 슈팅
·
TIL
1️⃣ 문제Schedule과 User와 N:1관계이므로 @ManytoOne을 명시해주고 포스트맨으로 사용자 삭제를 요청했다 하지만 외래키 관계여서 삭제가 안된다고 한다2️⃣원인Schedule와 User 관계만 설정해주고 User-> Schedule관계를 설정해주지 않았다. 즉 양뱡향 관계를 하지않았다.그래서 @OneToMany로 1:N관계를 명시해주고 다시 포스트맨으로 삭제요청을 했지만 작동하지 않았다.mappedBy("schedule") -> mappedBy("user")로 변경했다. 그 후 사용자 삭제 시 연쇄 적으로 댓글과 일정이 잘 삭제 되는 것을 확인 내가 알고 있는 지식으로는 mappedBy가 연관관계 주인이 아니라면 mappedBy를 사용한다고 알고 있는데 user가 주인으로 인지를 했어서 ..