목록Spring (16)
myinfo0968 님의 블로그

날짜/시간 타입 직렬화 및 역직렬화 문제 배경 캐시를 사용하지 않고 매번 DB에서 조회하는 것과 redis를 활용해서 캐싱전략을 사용했을 때의 성능차이를 비교하려고 한다. handleException() in GlobalExceptionHandler throw Exception : Could not write JSON: Java 8 date/time type `java.time.LocalTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling CacheManager를 등록하고 메서드에 @Cacheable 어노테이션을 달아 key, value를 설정해..

ppt KPT Spring boot 심화 프로젝트깃 허브 링크 : https://github.com/pokerbearkr/baedalTeam27.git프로젝트 최종본 : https://www.notion.so/teamsparta/Team-27-1ce2dc3ef5148004beebddc76669be77 Keep 모르는 부분이 있을 때마다 서로 찾아보고 정보를 공유할 수 있는 점포기하지 않고 끝까지 맡은 바를 끝맺은 점항상 소통하는 자세 유지 Problem 배우지 못한 기능이나 기술들을 활용해 구현하는 방법이 어려웠다.깨달은 것을 정리할 수 있는 시간이 부족했다. Try 문서만으로도 사용자가 쉽게 이해할 수 있도록 만들기자신의 파트가 아니더라도 팀원들끼리 공유될 수 있도록 하기잘 안 되는 부분..

1. Cron 표현식 배경 사용자가 오픈시간과 마감시간을 입력하여 가게를 등록하게 되면 오픈시간과 마감시간 사이에는 OPEN이라 상태를 표시하고, 이외에는 CLOSED라고 표현하고 싶었다.그러다가 cron 표현식을 알게 되어 적용을 한번 해보려 했다. Cron 표현식이란?Cron 표현식은 특정 시간이나 주기로 작업을 예약할 때 사용하는 문자열 형식의 규칙이다. 리눅스/유닉스의 cron, 스프링 스케줄러, Quartz 등 다양한 환경에서 사용되며, 정기적으로 실행해야 하는 작업의 실행 시점을 지정할 때 활용 된다. 기본 구조5 필드 구조 (리눅스/유닉스)필드의미허용 값분Minute0-59시Hour0-23일Day of Month1-31월Month1-12 or Jan-Dec요일Day of Week0-6 (0 ..
HttpMessageConverter HttpMessageConverter View를 응답하는 것이 아닌, Rest API로 JSON, TEXT, XML 등의 데이터를 응답 Message Body에 직접 입력하는 경우 HttpMessageConverter를 사용한다.1. SSR -> @Controller + View Template -> 서버 측에서 화면을 동적으로 그린다.2. CSR -> @RestController + Data -> 클라이언트 측에서 화면을 동적으로 그린다.3. 실제로는 두가지 기술이 함께 사용되는 경우가 많다. HttpMessageConverter 동작 순서HTTP 응답 메세지 Body에 데이터를 직접 입력 후 반환한다.요청 Accept Header + Controller 반환 타입..

PPT KPT 스프링부트 기초 프로젝트 깃 허브 링크 : https://github.com/Kimminu7/SNS_Project/tree/main 프로젝트 정리본 : https://velog.io/@todok0317/Spring-Boot-SNS-프로젝트 시연 영상 링크 : https://youtu.be/tyOUhAh4MhI 프로젝트 트러블슈팅 : https://myinfo0968.tistory.com/49 한 일프로젝트 명 : SNS 프로젝트작업 : Spring Boot의 JPA를 활용하여 작업 느낀 점김현정 : 첫날 하루를 개인적인 사정으로 인해서 결석을 하였어도, 팀원들이 잘 설명해 주시고 도와주셔서 원활하게 팀 프로젝트를 한 것 같아서 좋았습니다. 어려운 부분도 서로 물어보며 해결해 나아..
커스텀 어노테이션 커스텀 어노테이션으로 현재 로그인 중인 유저 확인하기 기능을 구현하다 보면 로그인을 확인하거나, 현재 로그인 중인 유저를 확인하는 기능을 여러 곳에서 처리해야 하는 경우가 생긴다.이럴 때 사용 할 수 있는 방법이 filte, Interceptor 등 이 있다.이러한 방법을 사용하면 반복되는 기능을 공통적으로 처리할 수 있다. 로그인이 안되어 있을 경우에는 다른 요청이 들어오면 자동으로 Filter를 통해 걸러주게 설정을 한다.여기서는 Filter 말고 Interceptor와 HandlerMethodArgumentResolver를 이용하는 방법을 사용하려고 한다. 1. 로그인 본인 확인이전에는 로그인한 사람이 본인인지 확인하는 로직을 필요한 부분에 써주는 방법으로 구현했었다.sessi..

1. Merge 배경 팀원들과 기능별로 브랜치를 따로 파서 작업을 시작하기로 했다.그리고 어느 정도 기능구현이 완료되었을 때 dev브랜치로 병합 한번 해보기로 결정했다.처음 팀원들과 협업하는 프로젝트이다 보니 브랜치를 따로 설정해서 작업하는 것도 처음이고 merge 하는 것도 처음이라 merge 할 때 충돌이 일어날까 두려웠다.팀원들과 회의 끝에 돌이킬 수 없는 문제가 발생할 수도 있으니 튜터님 앞에서 merge를 하기로 결정이 되었다. 원인 아니나 다를까 merge 버튼을 누르자 아래 사진예시와 같이 충돌이 일어났다. 충돌이 일어난 부분을 더블클릭하게 되면 아래 사진과 같은 창이 뜬다.같은 줄에 서로 다른 코드가 있기 때문에 나타나는 문제이다. 해결(방법 1) dev브랜치라고 되어 있는 부분이 ..

트러블 슈팅 배경 기존 JDBC를 사용할 때는 repository에서 sql문을 사용해서 CRUD를 작업했었다.그러나 JPA를 사용하면서 JPA에서 자동으로 쿼리를 작성해 줘서 간단한 CRUD는 구현된 메서드를 사용해서 작업할 수 있게 되었다. 전개 그러나 일정을 조회할 때 문제가 생겼다.강의에서는 Entity 내부에 List 타입을 변경하는 메서드를 만들어서 조회하는 방법을 사용했다.위 사진과 같이 toDto 라는 메서드를 만들어 responsedto 형태로 바꿔주고 stream을 통해 list로 반환한다.그러나 나는 메서드를 따로 만든다는 것이 맘에 들지 않았다. 그래서 메서드로 따로 만들지 않고 해당 코드에서 바로 해결하는 방법이 없을까? 계속 고민했다. 위기 stream으로 응답Dto에DB에 ..