
프로젝트 시작 전 필요한 플러그인배경이번에 디프만에서 팀 프로젝트를 진행하게 되는데 기존에 해왔던 자바 스프링이 아닌 코틀린 스프링으로 진행하게 되었다.나는 코틀린을 처음 접하기에 새롭게 배우는 부분이 많은데 이러한 내용들을 정리해볼까 한다. [스프링]plugins { ... kotlin("plugin.spring") version "1.9.22" ...}스프링에서는 AOP 처리를 위해 상속을 내부적으로 한다. 하지만 코틀린에서 선언하는 클래스는 기본적으로 final 클래스이기에 open 키워드를 붙여줘야 상속이 가능하다. 매번 open을 적어주는 것은 귀찮은 작업이기에 자동으로 open을 붙여주기 위한 스프링 플러그인을 추가해줘야 한다. [JPA]@Entityclass User( @Id ..

RetentionPolicy와 AOP에 대한 고찰관심을 가지게 된 이유'땅콩' 프로젝트에서 '방 생성'시 쿠키를 발급하는 로직이 있었다.이때 쿠키 발급 로직이 '방 컨트롤러'에 구현되어 있었다.OOP 관점에서 책임 분리의 필요성을 느꼈고 세션 관리 로직을 AOP로 리팩터링 하도록 결정하였다.이 과정에서 AspectJ를 활용하여 AOP를 구현하였다.@IssueCookie라는 커스텀 애노테이션을 만들어 해당 애노테이션이 있는 경우 비즈니스 로직 호출이 완료된 이후 쿠키를 발급하는 로직이 호출되도록 설정하였다.의문점 발생문제 상황나는 서버가 실행되고 있는 중 '방 생성 API'가 호출될 때, 이를 처리하는 createRoom 메서드에 애노테이션을 보고 쿠키 로직이 호출된다고 생각하였다. 그래서 런타임까지 애노..

배경방 참여 및 방 생성 작업 시 쿠키를 발급하여 유저 정보를 세션 관리하고 있었다.(방 참여 API에서 쿠키를 저장하는 로직을 호출한다.)하지만, 쿠키를 발급하는 로직을 RoomMemberCookieEncryptor와 같은 필드로 컨트롤러에 가지고 있고, 쿠키를 설정하고 지우는 작업을 컨트롤러가 가지고 있는 것은 책임 분리 측면에서 부적절하다고 판단하였다. 이에 따라, 쿠키 설정 및 삭제 로직을 컨트롤러에서 분리하여 관리할 필요성을 느끼게 되었다.(RoomController에서 쿠키를 설정하고 삭제하는 로직이 구현되어 있다) 이를 해결하기 위해 다음 세 가지 방안을 고려하였다.대안1. Filter필터는 J2EE 표준 스펙으로, 디스패처 서블릿에 전달되기 전후에 URL 패턴에 맞는 모든 요청에 대해 부가..

데모데이 준비이번주는 2차 데모데이가 있는 주. 그래도 저번주에 해커톤을 통해 프론트엔드는 어느 정도 페이지를 시안을 만들어두었고 백엔드도 CI / CD를 구축해 두었기 때문에 API만 개발하면 됐다. 생각보다 여유롭게 구현할 수 있을 것 같은데?무슨 생각에서 저런 여유가 나왔는지 모르겠다. 이번주 부터 우리 땅콩팀 백엔드는 Real MySQL 스터디도 진행하기로 했어서 스터디도 준비해야 했다. 하지만 뭔가 여유가 있다고 느껴졌다. 그래서 18시 이후에는 알고리즘 문제 좀 풀고 스터디 준비를 하면서 시간을 보냈던 것 같다. 인간은 망각의 동물화요일 부터는 데모데이 안에 구현해야 하는 API가 무엇인지 정했고, 분배까지 완료했다. 이날도 회의만 하다가 끝났던 것 같다. 그래서 본격적으로 API 개발을 ..
- Total
- Today
- Yesterday
- 우아한테크코스 후기
- 우테코
- 분산락
- google cloud bucket
- Assertions
- 우아한테크코스 6기
- 토큰
- 응답 로깅
- 코루틴
- 우테코 6기
- logql
- contentcacherequestwapper
- 음성 파일 응답
- 6기
- 알고리즘
- 자바
- 우테코 준비
- httpserveltrequest
- 파이썬
- 게임개발
- 요청 로그
- 카카오 기술 블로그
- gcp bucket
- 우테코 프리코스
- 우아한테크코스
- gcp 음성 파일
- JWT
- 레디스
- redis
- 우아한테크코스 자소서
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |