Development/Spring Framework (21) 썸네일형 리스트형 [Spring Boot] API 생성하기 API 생성에 필요한 클래스 Controller : API 요청을 받음 DTO : Request를 받음 Request : 트랜잭션, 도메인 기능 간 순서 보장 비즈니스 로직 처리 Web Layer - 외부 요청과 응답에 대한 전반적 영역 - @Controller와 JSP/Freemarker 등 뷰 템플릿 영역 - ex) 필터(@Filter), 인터셉터, 컨트롤러 어드바이스(@Controller Advice 등) Service Layer - Controller와 DAO 중간 영역에서 사용 - @Service에 사용되는 영역 - @Transaction이 사용되어야 하는 영역 Repository Layer - DB와 같이 데이터 저장소에 접근하는 영역 DTOs - DTO(Data Transfer Object).. 스프링 부트에서 JPA 사용하기 (3) sky-abraxas.tistory.com/61 스프링 부트에서 JPA 사용하기 (2) sky-abraxas.tistory.com/60 스프링 부트에서 JPA 사용하기 (1) ORM : Object Relational Mapping JPA를 이해하기전 알고 가야할 것은 ORM이라는 개념입니다. 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 객.. sky-abraxas.tistory.com JPA Repository 1. DB와 접근하기 위한 인터페이스를 생성합니다. JpaRepository를 상속받습니다. ibatis 혹은 MyBatis 등에서는 DAO(Database Access Object)라고 불리우는 DB Layer 접근자를 사용합니다. 하지만 JPA에서는 이 DAO를 Repository라고 부.. 스프링 부트에서 JPA 사용하기 (2) sky-abraxas.tistory.com/60 스프링 부트에서 JPA 사용하기 (1) ORM : Object Relational Mapping JPA를 이해하기전 알고 가야할 것은 ORM이라는 개념입니다. 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 객체와 DB의 테이블 매핑을 이루는 것 자바 객체와 쿼리를 sky-abraxas.tistory.com 프로젝트에 Spring Data JPA 적용하기 1. build.gradle에 의존성 등록 compile('org.springframework.boot:spring-boot-starter-data-jpa') - 스프링 부트용 Spring Data JPA 추상화 라이브러리 - 스프링 부트 버전에 맞추어 자동으로 JPA관련 라이브러리들의 버전을 관리함 co.. 스프링 부트에서 JPA 사용하기 (1) ORM : Object Relational Mapping JPA를 이해하기전 알고 가야할 것은 ORM이라는 개념입니다. 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 객체와 DB의 테이블 매핑을 이루는 것 자바 객체와 쿼리를 분리해 프로그램의 복잡도를 줄임 트랜잭션(Transaction)과 같은 DB관련 작업들을 좀 더 편리하게 처리할 수 있는 방법 쿼리가 아닌 직관적인 메서드로 데이터를 조작할 수 있음 JPA : JAVA Persistance API 객체지향 프로그래밍을 객체지향 프로그래밍 답게 개발할 수 있는 자바 표준 ORM(Object Relational Mapping)입니다. 자바 ORM 기술에 대한 표준 명세 ORM을 사용하기 위한 인터페이스를 모아둔 것 자바 어플리케이션에서 RDB를 사용하.. 스프링 부트 롬복 추가하기 롬복은 getter, setter, 기본 생성자, toString 등을 어노테이션으로 자동 생성해줍니다. 인텔리제이에서는 플러그인으로 쉽게 설정이 가능합니다. 롬복(Lombok) 추가하기 build.gradle 파일에 compile('org.projectlombok:lombok:')을 추가한 뒤 새로고침을 해주어 라이브러리를 내려받습니다. 롬복 플러그인을 설치합니다. Command + Shift + A (맥 기준) 단축키 후 Plugins를 입력해 설치 팝업으로 이동합니다. Marketplace 탭에서 Lombok을 검색해 설치한 뒤 인텔리제이를 재 시작합니다. 플러그인 설치는 한 번만 하면 되지만, build.gradle에 라이브러리를 추가하는 것과 Enable annotation processing을.. 스프링 부트에서 테스트 코드 작성 견고한 서비스를 위해 개발자나 팀에서 TDD 혹은 최소한 테스트 코드를 작성합니다. 즉, 대부분의 서비스 회사는 테그트 코드에 관해 요구하고 있습니다. 테스트 코드 소개 중요하게 집고 가야 할 것은 TDD와 단위 테스트는 다른 이야기 입니다. TDD 테스트 주도 개발로 테스트 코드를 먼저 작성하는 것부터 시작합니다. 실패하는 테스트를 먼저 작성하며(RED), 테스트가 통과하는 프로덕션 코드를 작성하고(Green), 테스트가 통과하면 프로덕션 코드를 리팩토링합니다.(Refactor) 단위 테스트 이는 TDD의 첫 번째 단계인 기능 단위 테스트 코드를 작성하는 것을 이야기합니다. TDD와 달리 테스트 코드를 꼭 먼저 작성해야 하는 것이 아니며, 리팩토링도 포함라지 않습니다. 순수하게 테스트 코드만 작성하는 .. 인텔리제이로 스프링부트 시작하기 (IntelliJ, Spring Boot) 인텔리제이(IntelliJ) 인텔리제이가 이클립스에 비해 강점은 아래와 같습니다. 스마트한 추천 기능(Smart Completion) 다양한 리팩토링과 디버깅 기능 이클립스의 깃(Git)에 비해 높은 자유도 프로젝트 시작시 인덱싱을 하며 파일을 비롯한 자원들에 대한 빠른 검색 속도 HTML, CSS, JS, XML에 대한 강한 지원 자바, 스프링 부트 버전업에 맞춘 빠른 업데이트 체감으로 가장 크게 느끼는 것은 추천 기능입니다. 자동완성이 너무 잘 되어 있어서 잠시 이클립스를 볼 일이 있을 때 답답하더라고요. 하지만 인텔리제이는 유료로 제공되고 있습니다만, 학생분들이시라면 인증을 받으시고 교육용으로 이용 가능하십니다. 혹은 인텔리제이 커뮤니티(무료)로 제공되는 버전도 있기에 이를 사용하시는 것을 권장드립.. 스프링디자인패턴(4) 싱글턴 패턴 - Singleton Pattern 싱글턴 패턴: Singleton Pattern Single에 주목해 번역하자면, 인스턴스를 하나만 만들어 사용하기 위한 패턴입니다. 즉, 하나의 인스턴스만 생성한 뒤 재사용하는 것인데요. 여러 인스턴스를 생성하면 자원 낭비가 발생해 예기치 못한 결과가 발생하는 경우를 예방하기 위해 사용됩니다. 예를 들어, 커넥션 풀, 디바이스 설정 객체 등이 존재하지요. 다시 한 번 더 이야기하자면, 싱글턴 패턴을 적용할 경우 의미상 두 개의 객체가 존재할 수 없으며, 필요한 요소는 다음과 같습니다. 생성자 제약 : new를 생성할 수 없도록 생성자에 private접근자를 지정합니다. 유일한 단일 객체 반환을 위해 정적 메서드(static method)가 필요합니다. 직접적으로 생성자를 통해 인스턴스를 생성하지 않고, .. 이전 1 2 3 다음