전체 글

스튜디오뮤직

[StudioMusic] 운전할 때 듣기 좋은 음악 (졸음타파)

운전할 때 듣기 좋은 음악 (졸음타파) http://flomuz.io/s/r.hGb2k4qLA 운전할 때 지금 FLO Music에서 감상해 보세요. www3.music-flo.com

Dev/Spring

[Spring Batch] 공공데이터 OPEN API 활용시, Spring Batch와 Quartz사용해 반복적으로 DB에 저장 자동화하기 - (1)

공공임대주택 공공데이터 API를 활용해 다음과 같은 화면을 구성해야 하는 일이 생겼습니다! 지역별로 쉐어하우스의 개수를 지도에 표시하는건데요, 이를 청년주택 데이터로 구마다 표시하려면 어떻게 해야 할까요?! 다음과 같이, 공공데이터 홈페이지에서 OPEN API를 제공해줍니다! 사용법은 위의 그림과 같습니다 쿼리스트링 방식으로, 해당 변수에 값을 넣어서 HTTP 요청 메세지를 보내면 되는데요, 예시로는 아래 그림과 같습니다. HTTP 응답 메세지에서 totalCount값이 98임을 확인할 수 있습니다! 즉, 서울특별시 중구에는 98개의 공공임대주택이 있다는 것이죠! 그런데, 위에서 봤던 쉐어하우스 우주 홈페이지와 같이 서울의 모든 구마다 주택의 개수를 표현하고자 한다면, 이 요청을 구마다 반복해야 할까요?..

Dev/JPA

[JPA] @MapStruct 라이브러리 사용시, JPA 연관관계 매핑

MapStruct 라이브러리를 이용해 Dto Entity 간 쉽게 매핑을 해줄 수 있습니다. 컴파일 시점에 매핑클래스를 생성하기 때문에, ModelMapper보다 훨씬 성능이 좋습니다! JPQL을 사용한다면 런타임에서 오류를 잡아내기 때문에 내가 코드를 알맞게 작성한건지 알기 힘들었고, 이는 QueryDsl을 사용함으로써 컴파일 시점에 쿼리 오류를 잡아낼 수 있었습니다. 이때 QueryDsl도 컴파일 시점에 Q클래스 파일이 생성되는데 MapStruct도 이와 비슷한 맥락입니다! MapStruct 라이브러리 사용법은 아래와 같습니다. CreateRequest Dto를 Board Entity로 변환하고자 할 때 다음과 같이 작성합니다! 근데, 매핑은 쉽게 해준다고 해도 .. JPA의 연관관계는 어떻게 진행될..

회고록

[Mentoring] 청년고민해결단 온라인 멘토링 회고록

2022.04.02 청년고민해결단 온라인 2차 멘토링을 받았다! 사실 2주 전에 1차 멘토링이 있었지만,, 불가피하게도 코로나에 걸려 참여하지 못했다.. 그래서! 이번 2차 멘토링에 열정가득한 마음으로 참여하게 되었다! 10:00 ~ 12:45 까지 줌으로 1대1 멘토링이 진행되었는데, 결론부터 말하자면 .. 정말 유익하고 알찬시간이였다. 멘토님께서 멘토링 진행 하루 전, 이렇게 메일로 멘토링관련 자료를 보내달라고 요청해주셨다! 평소에 사이드 프로젝트들을 진행할때, 내가 모르는 프로젝트의 부족한 부분이 있는지.. 피드백을 받고 싶다는 생각이 많았었는데 이번 기회를 통해 내가 원하던 피드백을 받을 수 있었다! 사이드 프로젝트의 피드백으로는, 여러 가지 최신기술들을 접목시켜보는 것은 완전 괜찮지만 이 기술들..

Dev/Docker

[Docker] Docker TimeZone설정(UTC -> KTC)

스프링부트 프로젝트를 배포했는데, 타임스탬프 출력시 UTC로 자꾸 출력이 되는 걸 확인할 수 있었다. 무엇이 문제일까 고민하는 과정에서 여러가지를 시도해보았다. 위와 같은 코드를 main함수와 같은 레벨에 작성해봤는데, 개발 환경에서는 문제없었으나 운영 환경에서는 여전히 UTC를 사용하고 있었다. 리눅스 서버의 타임존을 KTC로 변경해도 마찬가지로 UTC의 시간이 출력되었다. 하지만 필자의 운영서버는 위의 그림과 같이 구성되고 있다. 스프링부트의 타임존을 변경하든 리눅스의 타임존을 변경하든, Docker Container를 이용하고 있기 때문에 타임존은 그대로 UTC였던 것을 확인할 수 있었다. 이를 해결하기 위해 docker-compose.yml파일의 스프링부트 environment부분에서 TZ을 위의..

Dev/Spring

[Spring] Spring Security, JWT 사용 시 Filter에서 예외처리(vs @ExceptionHandler, @RestControllerAdvice)

Spring Security, JWT 사용 환경에서 예외처리 하는 방법을 알아보겠습니다! Spring에서는 API 예외 처리 문제를 해결하기 위해 @ExceptionHandler라는 편리한 예외 처리 기능을 제공합니다. 실무에서 API 예외 처리는 이 기능을 대부분 사용합니다. 예를 들자면, 다음과 같이 추상 클래스 ResponseEntityExceptionHandler를 상속받고 각각의 메서드 레벨에 @ExceptionHandler 메서드를 붙여 사용합니다. Exception예외든 제가 직접 정의한 NotFoundUserException이든 하나의 클래스에서 예외를 관리할 수 있고 이를 클라이언트에게 JSON형식으로 내려줄 수 있습니다. 위의 그림과 같이 예외를 클라이언트에게 전달해줄 수 있게 됩니다!..

friendshipkim97
어떤 초콜릿을 꺼낼 건지