Spring

    [Spring boot] 열리는 port 번호 변경하기

    [Spring boot] 열리는 port 번호 변경하기

    Spring boot에서 port 번호 변경하는 법 버전 기준은 Gradle이다. src/main/resources/application.properties 위 해당 경로에서 간단하게 변경할 수 있다. 변경하고 실행을 해보면 Tomcat찡이 인식하여 변경해준다. Port 번호를 왜 바꾸나? 통상적으로 8080이 default로 되는 경우가 많은 거 같아, 프론트엔드와 통신할 때 충돌이 일어날 수도 있고, 다른 서버 애플리케이션과도 충돌이 일어나 피하고 싶은 마음에 바꾼 것이다.

    [Spring boot] @ManyToMany를 사용하면 안 되는 이유

    [Spring boot] @ManyToMany를 사용하면 안 되는 이유

    @ManyToMany가 편리할 수도 있겠지만, 실무에서는 사용을 권장하지 않는다. 다대다이기에 중간 테이블에 컬럼을 추가할 수도 없고 세밀하게 쿼리를 사용하여 조회 및 변경하기 어려워진다. 또한 조인 쿼리를 날렸을 때 조인 테이블 자체에 위 테이블처럼 주문시간이나 수량 같은 부수적인 데이터 다루기가 어려워진다. 그리고 중간 중간 테이블이 숨겨져 있기 때문에 예상치 못한 쿼리들이 조회될 수도 있다. 그래서 해결 방법으로 위와 같이 중간 테이블을 생성하고 @OneToMany, @ManyToOne으로 일대다, 다대일 관계로 풀어내는 것이 제일 best라고 생각한다. 그래야 위 Member_Product처럼 회원의 FK, 상품의 FK를 조회하고 해당 회원의 한 상품 ID를 조회하여 꺼내올 수 있는 로직이 성립된..

    JPA vs MyBatis 비교

    JPA vs MyBatis 비교

    JPA Java Persistence API 자바 진영의 ORM 기술 표준 구현체로는 Hibernate, EclipseLink, OpenJPA 등등 있는데 Hibernate가 가장 대중적이다. 여기서 ORM이란? Object-relational mapping (객체 관계 매핑)의는 약어 객체는 객체대로 설계 관계형 데이터베이스는 관계형 데이터베이스대로 설계 ORM 프레임워크가 중간에서 매핑 즉, ORM은 SQL문이 아닌 RDB에 데이터 그 자체를 매핑하기에 SQL을 직접 작성할 필요는 없다. 대중적인 언어에는 대부분 ORM 기술이 존재 MyBatis (Java Persistence Framework) 자바 진영의 오프젝트와 SQL 사이의 자동 매핑 기능을 지원하는 프레임워크이다. JDBC로 처리하는 상당..

    [Spring] MyBatis 연동 및 API 테스트

    [Spring] MyBatis 연동 및 API 테스트

    2월 5일 코드프레소 웹 개발 트랙 체험단에서 오프라인 교육을 진행했다. 교육했던 장소는 양천향교역 7번 출구 쪽 교육센터를 대관하였고 참가인원은 한 17명?정도 되보였다. 아무래도 코로나19 확산이 심해져서 거의 절반의 인원이 참여를 안한 듯하다. (이날 확진자 34000명..ㄷㄷㄷ) 그래도 오프라인에서 무엇을 학습하고 프로젝트는 어떻게 진행하는 지 궁금해서 참여했다. 진행한 내용은 이와 같다. 1. MyBatis db연동 2. Spring repository 3. 데이터 접근 기술 4. MyBatis와 데이터베이스 설정 – Maven과 Spring 설정 5. MyBatis와 데이터베이스를 활용한 TodoList 프로젝트 개발 Spring Repository 엔티티에 의해 생성된 데이터베이스에 접근하는..

    [Spring] Spring Service, Bean, 의존성 주입

    [Spring] Spring Service, Bean, 의존성 주입

    코드프레소 Java 웹 개발 체험단 활동 중 Spring Boot 웹 개발 입문 강의에서 Spring Service, Bean과 의존성 주입에 관련 포스팅을 할려 한다. Spring Bean은 정말 많은 개념이 있고 관련하여 의존성 주입도 하는 방법에 대해 글을 작성할 것이다. Spring Service 시스템의 핵심 비즈니스 로직을 구현하는 계층이다. SNS 시스템의 경우 이미지, 글 등의 컨텐츠 정보를 저장 사용자가 선호할 한 컨텐츠를 추천 회원가입, 로그인, 회원 탈퇴 등의 회원 관련 처리 view의 종류와 DB 종류에 영향을 받지 않는 독립적인 계층이다. Service의 구현 클래스에 @Service 에노테이션 사용 파라미터로 전달된 데이터들의 검증 작업 수행 Repository 계층을 활용하여 ..

    [Spring Boot] Spring 웹 개발 입문 (Spring Controller, HTTP, REST API 문서)

    [Spring Boot] Spring 웹 개발 입문 (Spring Controller, HTTP, REST API 문서)

    전 게시물은 Spring 프로젝트 생성에 관한 내용을 작성했다. 코드프레소 Java 웹 개발 체험단 활동 중 이번엔 REST API, Bean, DI(의존성 주입) 강의를 수강하여 이에 관한 포스팅을 하려한다. 계층형 아키텍처 패턴 웹 서비스 개발에 주로 사용되는 패턴 SW를 서로 다른 역할을 하는 3~4개 계층으로 구분 Presentation Layer Application Layer Business Layer Data Access Layer 계층 간에 호출을 하고 데이터를 주고 받으며 협력하며 전체 웹 서비스 구성 Presentation Layer의 역할 Client로부터 요청을 받아 Application Layer에 처리를 위임 Application Layer의 결과를 최종 Client로 전달 Ap..

    [Spring Boot] Spring 웹 개발 입문 (Spring 프로젝트 생성)

    [Spring Boot] Spring 웹 개발 입문 (Spring 프로젝트 생성)

    드디어 대망의 Spring boot (스프링 부트) 강의를 수강하게 되었다. 코드프레소 Java 웹 개발 체험단 활동 중 아직 객체지향 개념과 실습이 부족하지만 프레임워크를 다룬다는 것이 너무 고대하던 순간이였다. 아직 모든 강의가 안올라와 환경설정 및 HTML, CSS 개념 정도 올라왔지만 그래도 공부를 위해 포스팅한다. Spring Framework는 러닝 커브가 매우 높으며, Java의 객체 지향 설계 원칙과 디자인 패턴, loc, DI, AOP, Bean과 Context의 개념이 필요하다. Spring Framework는 웹 개발만을 위한 Framework는 아니지만, 주로 웹 어플리케이션 개발을 위해 활용된다. 작은 게시판과 같은 웹 어플리케이션부터 Netflix 수준의 대규모 어플리케이션을 개..