[playground] spring boot 멀티모듈 프로젝트 시작하기
Project/playground(java-spring,멀티모듈)2023. 6. 25. 21:35[playground] spring boot 멀티모듈 프로젝트 시작하기

백엔드 개발자로 취업을 준비하며, 국비교육 이후 몇 개의 프로젝트들을 진행해 왔지만 "매력 있는 신입 개발자"가 되기에는 모자람을 느꼈다. 이에 백엔드 개발자 커뮤니티와 각종 커피챗에 참여해 현직 미들, 시니어급 개발자분과 이야기를 나눈 후 Spring Framework의 Security와 Oauth2, JPA, Batch 등 실무에서 기본적으로 다룰 기능들이 포함되며 Testcode와 api 명세 자동화에 대한 나만의 고민이 담긴 프로젝트를 취업 준비와 병행하기로 결정해서 진행 중이다. 이미 시작한 지는 조금 되었지만 기존 프로젝트들과 다르게 하나하나 많은 고민들이 담긴 프로젝트이기에 작은 고민까지 하나하나 기록에 남기고 싶어 블로그 연재를 시작한다. 우선, 아키텍처는 멀티모듈 아키텍처를 선정해서 진행..

Web_Backend2023. 6. 20. 17:20[Spring, JAVA] Validation

Validation이란? 📌 [사전] 유효성 검증, 주로 사용자 또는 서버의 요청 내용에서 잘못된 내용이 있는지 확인하는 단계 Validation의 종류 데이터 검증 필수 데이터의 존재 유무 문자열 길이나 숫자형 데이터의 경우 값의 범위 email, 신용카드 번호 등 특정 형식에 맞춘 데이터 비즈니스 검증 서지스의 정책에 따라 데이터를 확인하여 검증 배달앱의 경우 배달 요청 시, 해당 주문 건이 결제 완료 상태인지 확인 등 경우에 따라 외부 API를 호출하거나 DB의 데이터까지 조회하여 검증하는 경우도 존재함 Speing core Tech - Validation란? 📌 Spring 에서는 WEB layer에 종속적이지 않은 Vaildation을 하고자 노력 Spring의 Vaildation( 둘 다 데이..

[troubleShooting, Spring] package org.springframework.jdbc.datasource does not exist
Project/(공통)troubleshooting2023. 5. 28. 14:45[troubleShooting, Spring] package org.springframework.jdbc.datasource does not exist

package org.springframework.jdbc.datasource does not exist 💡 프로젝트 생성시 JDBC dependency를 implementation 하지 않았기 때문에 발생한 이슈 에러 코드 java : package org.springframework.jdbc.datasource does not exist 핵심 요점 JDBC dependency를 gradle.build에 추가해준다. 해결 방안 JDBC dependency를 gradle.build에 추가해준다. implementation 'org.springframework.boot:spring-boot-starter-jdbc'

[Servlet] Dispatcher Servlet
Web_Backend/Spring2023. 5. 28. 14:22[Servlet] Dispatcher Servlet

Dispatcher Servlet Servlet이란? ✅ 서블릿(Servlet)은 클라이언트 요청을 처리하고, 그 결과를 반환하는 웹 프로그래밍 기술을 말함. 자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양을 말하며, 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다. 코드의 지저분함(모든 서블릿을 web.xml등록 높은 의존성 HttpServlet 기능을 필수로 Override 해야 하고, 더 이상 일반 객체로 사용할 수 없다. 중복되는 작업 모든 서블릿이 공통으로 처리하는 작업이나, 가장 우선시 되야하는 작업 Dispatcher Servlet이란? 📌 Servlet Container에서 HTTP프로토콜을 ..

[Spring] Spring AOP(Aspect Oriented Programming)
Web_Backend/Spring2023. 5. 28. 14:15[Spring] Spring AOP(Aspect Oriented Programming)

Spring AOP(Aspect Oriented Programming) Spring AOP란? 📌 Aspect Oriented Programming, 관점 지향 프로그래밍 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점(데이터베이스 연결, 로깅, 파일 입출력)으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 하겠다는 것 AOP 주요 개념 Aspect : 위에서 설명한 흩어진 관심사를 모듈화 한 것. 주로 부가기능을 모듈화함. Target : Aspect를 적용하는 곳 (클래스, 메서드 .. ) Advice : 실질적으로 어떤 일을 해야할 지에 대한 것, 실질적인 부가기능을 담은 구현체 JointPoint : Advice가 적용될 위치, 끼어들 수 있는 지점. 메서드 진입 지점, 생성자 호출 시점, ..

[Spring, JPA] JPA Persistence Context
Web_Backend/Spring2023. 5. 28. 14:05[Spring, JPA] JPA Persistence Context

JPA Persistence Context과 제공하는 기능 영속성이란? 📌 사전 : 영원히 계속되는 성질이나 능력 dev : 애플리케이션의 상태와 상관없도록 물리적인 저장소를 이용해 데이터를 저장하는 행위. Persistence Context란? 📌 영속성 컨텍스트(Persistence Context)는 영속화되어있는 entity identity에 대해 unique 한 entity 인스턴스가 존재하는 entity 인스턴스의 집합. 즉, entity의 영속화에 관여하며, entity들이 DB로 바로 가지 않고 entity를 저장하는 환경으로서의 역할을 함. 아래와 같은 방법으로 영속성 컨텍스트에 접근 가능 EntityManager.persist(entity); 영속성 컨텍스트 특징 식별자 값(id)이 있어..

image