목록Framework (49)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/B0OFE/btrLTU7qvmE/yNz6k3DDCKU9MKmWtlgOz0/img.png)
테스트 코드를 작성하는 이유 개발 과정에서 문제를 미리 발견할 수 있다. 리팩토링의 리스크가 줄어든다. 문서로서의 기능을 한다. 테스트 코드를 작성하는 가장 큰 목적이 첫 번째 이유이다. 테스트 코드를 작성하고 테스트하는 것은 코드에 잠재된 문제를 발견하는데 큰 도움이 된다. 일부러 에러가 발생하는 테스트 코드를 만들어서 예외처리가 잘 되는지 확인하거나, 비즈니스 로직에 맞춰 테스트 코드를 작성해서 결괏값이 참(200)으로 잘 나오는 지 확인하는 등의 방법으로 애플리케이션을 테스트한다. 애플리케이션을 개발하면 서비스 업데이트와 유지보수를 위해서 계속해서 코드를 수정하고 추가한다. 코드를 수정하는 것은 다른 애플리케이션 코드에 영향을 주는 위험한 작업이다. 그래서 테스트 코드를 작성하면 수시로 전체 애플리..
스프링 부트로 프로젝트를 하면서 db 민감정보를 버전관리에서 제외시키려고 application.properties를 gitignore 처리했었다. gitignore 처리했더니 mybatis 설정, view 설정 등 다른 사람이 봐도 되는 설정들을 볼 수가 없고, 무엇보다 나중에 git clone 해서 프로젝트를 내려받을 때 application.properties 파일을 따로 생성해야 하는 불편함이 생겼다. 그래서 db의 설정정보를 외부에다 위치시키고, 그 파일을 읽어오는 방식을 사용했다. 1. 먼저 application.porperties 안에 있는 db 설정정보를 없앤다. # MySQL DB 설정 #spring.datasource.driver-class-name=com.mysql.cj.jdbc.Dri..
빌더 패턴이란 객체를 정의할 때 생성자를 통해서 정의하는게 아니라 builder를 이용해서 정의하는 방법을 빌더 패턴이라고 한다. Post post = new Post(1, "테스트", "테스트 내용", "2022-07-28 18:26:39", 0, 1, 2); -> Post post = Post.builder() .id(1) .title("테스트") .content("테스트 내용") .writeTime("2022-07-28 18:26:39") .viewCount(0) .state(1) .writerId(2) .build(); 빌더를 사용하는 이유 1. 생성자의 매개변수가 많으면 가독성이 떨어진다. 위의 board에서 봤듯이 각 값들이 어떤 값을 의미하는 지 알기 힘들다. 물론 ide 에서는 매개변수 옆..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/zjorV/btrHfnMMhGd/qpTkWP5cxnMSKhdusD0220/img.png)
스프링 부트 spring란 자바 기반의 애플리케이션 프레임워크이다. 엔터프라이즈급 애플리케이션(대규모 데이터를 처리하는 등 기업 환경의 애플리케이션)을 개발하기 위한 다양한 기능을 제공한다. 이 스프링은 목적에 따라 다양한 프로젝트를 제공하는데, 그중 하나가 스프링 부트이다. 스프링 부트를 이용하여 프로젝트를 생성하는 방법에는 여러가지가 있지만, 아래의 이니셜라이즈 사이트를 이용하여 생성해봤다. 프로젝트 생성 스프링 이니셜라이즈 사이트 : https://start.spring.io/ Snapshot daily build 버전. 실험 중인 버전. 새로 개발 중인 기능이 있을 수 있다(인터페이스가 변경 될 수 있음) M(Milstone) Snapshot 보다 정리가 잘 되어 있는 버전. 실험 중인 버전. 새..
라라벨을 배포할 때 생각지 못했던 문제가 생겼다. 모든 url에 '/public'이 붙는 문제이다. 구글링을 해봤더니 나만 이렇게 되는게 아니라 많은 사람이 라라벨을 배포할 때 '/public' 이 붙어서 이걸 없애는 방법을 찾았다. 이결 해결하려고 다양한 시도를 해봤었다. 많은 시도 끝에 그 중 성공한 방법이 public 폴더 자체를 없애고 그 안에 있는 파일들을 전부 루트 위치에 놓는 것이다. 하지만 이렇게 해봤을 때 url에서 /public이 사라지긴 했는데 프로젝트 전체적인 구조가 망가지는 방법이어서 이건 아니다 싶어 새로운 방법을 찾아봤다. stackover flow에서 좋은 해답을 찾을 수 있었다. Laravel 5 – Remove Public from URL I know this is a v..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sSZ3E/btrJ9txy8Cu/fjClQWG0SDihhfV82GjjEk/img.png)
아임포트 https://www.iamport.kr/ 온라인 비즈니스의 모든 결제를 한곳에서, 아임포트 결제의 시작부터 비즈니스의 성장까지 아임포트와 함께하세요 www.iamport.kr 아임포트(iamport)는 국내 PG결제 연동을 쉽게해주는 결제 API 이다. 여기서 PG란 Payment gateway의 약자인데, 신용카드사와 직접 계약하기 어려운 온라인 쇼핑몰을 대신해 결제와 정산 업무를 대행해 주는 업체이다. 그래서 PG사와 계약을 하면 카드결제, 휴대폰 결제, 계좌이체, 무통장입금 등 다양한 결제 수단을 쇼핑몰 방문 고객에게 제공할 수 있다. 아임포트를 사용하기 전과 후 결제 요청 과정의 차이는 아래와 같다. 아임포트를 사용하지 않으면 쇼핑몰 서버에서 직접 PG사에 결제 요청을 해야한다. 아임포..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bra6JU/btrLLi8zLIr/4gSBtIpWr899Ccki7PXvYK/img.png)
logback 설정 파일이 적용된 로그를 봤더니 spring에서 기본적으로 적용됐던 로그 색상이 사라졌다. 로그의 색상을 수정하려면 아래와 같이 logback 설정 파일을 수정하면 된다. 1. conversion rule 추가 ....생략.... 2. pattern 부분 수정 %clr([%d{yyyyMMdd HH:mm:ss.SSS}]){magenta} %clr([%-5level]) [%thread] %clr(%logger){cyan} %msg%n 그 결과 다시 색상이 알록달록하게 변했다. 원리 spring-boot-버전.jar / org.springframework.boot / logging / logback 안에 있는 logback 설정 파일을 보면 원리를 알 수 있다. default.xml 색상 변경..
REST API를 개발할 때 update 부분 : PostMapping -> PutMapping delete 부분 : GetMapping -> DeleteMapping 으로 변경해보라는 조언을 받아 공부하게 되었다. @DeleteMapping DeleteMapping은 데이터를 delete할 때 사용하는 매핑이다. html 삭제 form에다 method="delete" 이렇게 하면 정상적으로 되지 않고, 저런식으로 hidden type을 생성하고 name="_method" value="delete" 해야 delete method로 보낼 수 있다. controller @DeleteMapping("/{id}/delete") public String deleteMovie(@PathVariable int id)..