Fascination
article thumbnail
[서평] 스프링 15일 완성: Do it! 점프 투 스프링 부트 3
etc.../etc Note 2024. 1. 8. 00:00

Do it! 점프 투 스프링 부트 3 | 박응용 - 교보문고 Do it! 점프 투 스프링 부트 3 | 백엔드 개발에 필요한 스프링 부트의 핵심만 담았다! 자바 웹 개발의 한 사이클을 이 책으로 15일 안에 배워 보자국내 최초 파이썬 책인 《Do it! 점프 투 파이썬》을 product.kyobobook.co.kr 이 서평은 이지스퍼블리싱 출판사로부터 책을 제공받아 작성되었습니다 개인적으로 해당 책의 서평단을 신청했던 이유는, SOPT에서 스프링 부트를 배우며 기본적인 지식이 부족하다는 생각이 들었기 때문이다. 짧은 시간이지만 앱잼 전 이 책을 읽을 수 있었던게 행운일만큼 도움을 많이 받았다! 일단 이렇게 15회로 나누어서 계획표가 작성되어 있는데, 개인적으로는 아는 내용은 가볍게 읽고 넘어갔기에 책을 다..

article thumbnail
[Spring Boot] MapStruct란 무엇일까?
Study/Backend Note 2023. 11. 29. 18:46

SOPT에서 합동세미나를 위해 서버 개발을 하면서 비즈니스 로직에 빌더를 호출하여 엔티티를 DTO로 변환하는 과정이 가독성을 떨어뜨리고 번거롭다는 생각이 들었다. 이를 해결할 수 있는 방법으로 MapStruct가 있다는 것을 알게되어 실제 프로젝트에서 활용한 코드를 바탕으로 소개해보고자 한다. 실제로 프로젝트를 진행하며, private로 서비스 코드 내에서 매핑하는 함수를 일일이 만드는 것은 활용도가 떨어지고, 가독성도 떨어진다고 생각했다. MapStruct는 빈 매퍼 클래스를 자동으로 생성해주며, 어노테이션 기반으로 작성된다는 장점이 있다. 같은 기능의 라이브러리로 modelMapper라는 것도 존재한다고 하는데, 이 라이브러리는 써본적이 없기도하고, 리플렉션이 존재하여 MapStruct가 더 성능이 ..

article thumbnail
[Spring Boot] Custom Error Handling을 해보자!
Study/Backend Note 2023. 11. 28. 13:12

SOPT에서 활동하며 스프링 부트 개발 시 에러 핸들링을 해주어야 할 일이 많이 있었다. 32기 때 이런 에러 핸들링을 스스로 하지 않았고, 앱잼 때도 리드 언니가 미리 해주어 서비스 단에서 커스텀 에러를 던지게 되더라도 우리가 만든 공통 형식으로 잘 찍히는 것만 확인하고 그 원리를 이해하지 않았던 것이 아쉬웠다. 그래서 이번 합동 세미나를 진행하며 에러 핸들링을 했던 것을 정리해보고자 한다 :) 1. Error을 관리할 Enum 과 CustomException 만들기 - API를 작성할 때 따로 Custom Error Handler를 만들어주지 않는다면, Runtime Error 발생 시 모두 500 Error로 Response가 전달되게 된다 { "timestamp": "2023-11-25T22:09..

article thumbnail
[SOPT] SOPT 32기 회고와 앱잼 서비스 건빵 회고를 해보자!
etc.../etc Note 2023. 9. 17. 23:14

[SOPT] GO SOPT 32기 서버(Server) YB 최종합격 후기 - 서류전형/면접 [SOPT] GO SOPT 32기 서버(Server) YB 최종합격 후기 - 서류전형/면접 0. 지원 동기 BoB 11기로 활동하면서 무언가를 위해 몰두하고 프로젝트로 이어가는 그 경험은 좋았으나 내가 이걸로 진로를 정했을 때 fascination-euna.tistory.com YB로 솝트에 붙었다고 신나했던게 어제 같은데 벌써 세미나, 합동 세미나, 솝커톤, 앱잼을 거쳐 수료를 했다! 33기는 DO SOPT이다 그리고 이번에도 서버 OB로 활동하게 되었다 (좋게 봐준 아슈파, 윤한오빠 매우 감사합니다!) 회고를 자주 하는 편은 아니었지만 솝트에서 열정 가득하게 성장했으니 가장 많은 시간을 함께한 건빵도 합쳐서 전..

article thumbnail
[SOPT] 파이썬과 Mysql 그리고 구글스프레드 시트를 연동하여 기획이랑 소통하는 법
Study/Backend Note 2023. 7. 21. 19:04

오늘은 GO SOPT 32기 앱잼을 하며 똑똑하게 기획과 소통하며 프로젝트에서 더미데이터를 쌓을 수 있었던 방법에 대해 기술하려고 한다 사담을 더하자면, 우리 서비스를 요약하자면 건강한 빵집에 대한 정보를 알 수 있고 이 빵집에 대해 리뷰를 남김으로써 다른 사용자와 정보 공유를 할 수 있다 사용했던 기술은 다음과 같다 1. Google Spread Sheet 2. Google API 3. python 4. mysql(AWS의 RDS에 구축했다) 5. chatGPT 1. Google Spread Sheet 기획이 건강한 빵집을 선별하여 필요한 정보를 수집해주었다 서비스에 구축한 데이터베이스에서 필요한 정보 중 이렇게 기획에서 넘겨주어야 할 데이터는 위와 같이 테이블 형태로 미리 양식을 만들어 공유해주었다 ..

article thumbnail
[SOPT] GO SOPT 32기 서버(Server) YB 최종합격 후기 - 서류전형/면접
etc.../etc Note 2023. 4. 3. 00:36

[SOPT] GO SOPT 32기 서버(Server) YB 최종합격 후기 - 서류전형/면접 0. 지원 동기 BoB 11기로 활동하면서 무언가를 위해 몰두하고 프로젝트로 이어가는 그 경험은 좋았으나 내가 이걸로 진로를 정했을 때 후회 안 할 자신이 있나? 에 대한 고민을 정말 많이 했던 것 같습니다. BoB 했으면 보안 계속해야지 아깝지 않아? 라고 물으실 수도 있는데 저는 오히려 미련 없이 제가 관심 있던 다른 분야에 도전할 계기가 되었던 것 같습니다. 우선 저는 극 E 그리고 F 를 가진 사람으로서 혼자 일하기보다는 프로젝트를 할 때 즐거운 사람입니다. BoB에도 팀 프로젝트가 있지만 사실 프로젝트를 보았을 때 취약점분석 측면에서는 그냥 개개인이 얼마나 취약점을 잘 찾냐가 중요한 싸움이었던 것 같습니다..

article thumbnail
[Spring Intro] Section 07. AOP
Study/Backend Note 2023. 3. 7. 13:35

[Spring Intro] Section 07. AOP 강의: 김영한의 스프링 입문 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/ # AOP가 필요한 상황 서비스 운영 중 프로그램에 문제가 있는 것 같아 모든 method의 호출 시간을 측정하고자 한다 우리 서비스에는 현재 1000개의 메소드가 있기 때문에 시작과 끝에 시간 측정 로직을 모두 심어야 한다 초 단위로 측정하는 코드를 모두 작성했는데 측정이 잘 되지 않아 밀리세컨드 단위로 바꾸게 되었다 이런 상황에서 모든 메소드의 호출 시간을 다시 바꾸기에는 너무 비효율적이다 따라서..

article thumbnail
[Spring Intro] Section 06. 스프링 DB 접근 기술
Study/Backend Note 2023. 3. 6. 23:47

[Spring Intro] Section 06. 스프링 DB 접근 기술 강의: 김영한의 스프링 입문 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/ # 들어가기 전 이전 포스팅까지는 회원 정보를 메모리에 저장했기 때문에 서버를 껐다 켜면 데이터가 메모리에서 모두 사라졌다 실무에서는 이런 일이 발생하면 안 되기 때문에 데이터베이스를 통해 저장하고 관리해야 한다 이를 위해 H2 데이터베이스를 설치하고, 데이터베이스의 SQL을 통해 애플리케이션 서버와 DB를 연결해 볼 것이다 연결할 때 필요한 것이 바로 Jdbc 기술이며, 오랜 전의 ..

article thumbnail
[Spring Intro] Section 05. 회원 관리 예제 - 웹 MVC 개발
Study/Backend Note 2023. 3. 4. 21:45

[Spring Intro] Section 05. 회원 관리 예제 - 웹 MVC 개발 강의: 김영한의 스프링 입문 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/ # 회원 웹 기능 - 홈 화면 추가 1. 홈 컨트롤러 추가 java/hello/hellospring/controller/HomeController.java를 다음과 같이 작성한다 @GetMapping("/")에서 "/"는 처음의 도메인(localhost:8080) 경로를 의미한다 return "home"; 구문은 template 내의 home.html을 찾아 반환하는 역할..

article thumbnail
[Spring Intro] Section 04. 스프링 빈과 의존관계
Study/Backend Note 2023. 2. 28. 22:42

[Spring Intro] Section 04. 스프링 빈과 의존관계 강의: 김영한의 스프링 입문 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/ # 컴포넌트 스캔과 자동 의존관계 설정 1. 컴포넌트 스캔과 자동 의존관계 설정 지난 Section3에서 구축했던 백엔드 기능에 화면을 붙여보자. 화면 구축을 위해서는 Controller와 View Template이 필요하다. 그러려면 MemberController를 만들어야 하는데, MemberController는 MemberService를 통해서 회원가입과 데이터 조회가 가능해야 한..