본문 바로가기

Development

(63)
[에러 기록] Request method 'XXX' not supported 테스트 코드 중 아래와 같은 에러 발생 Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'PUT' not supported] org.springframework.web.client.RestClientException: Error while extracting response for type [class java.lang.Long] and content type [application/json;charset=UTF-8]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse ..
[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라고 부..
[도커(Docker)] 맥북 Docker로 MySQL 설치하기 매일 멀쩡하게 작동하던 도커(Docker)에서 에러가 발생했다...ㅎㅎ 에러 코드를 복사해놓았는데 이래저래 해결하다보니 실수로 삭제했다. 아무튼 문제는 도커가 업데이트되지 않으며, 그탓인지 실행조차 되지 않았다.. troubleshoot을 해도 해결되지 않아 결국 도커를 삭제하고 재설치를 하였다. www.docker.com Empowering App Development for Developers | Docker Learn how Docker helps developers bring their ideas to life by conquering the complexity of app development. www.docker.com 도커 설치는 위 링크에서 맞는 OS와 프로세스에 맞추어 다운받으면 된다. ..
스프링 부트에서 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와 달리 테스트 코드를 꼭 먼저 작성해야 하는 것이 아니며, 리팩토링도 포함라지 않습니다. 순수하게 테스트 코드만 작성하는 ..