
전체 글
should have [public, protected] no-arg constructor
상황 칼럼이 같은 DB 테이블이 2개 있다. id, userName, perfumeName, image로 구성되어 있고 각 칼럼마다 saveDto를 만드는것보다 합치는 것이 객체지향에 가깝다고 생각해 방법을 찾다가 @MapperdSuperclass를 발견했다. 이 테스트를 진행하니 builder부분이 없어서 에러가 발생했고 부모 클래스의 빌더를 활용하는 @SuperBuilder를 알게됐다. @SuperBuilder를 사용해 코드를 작성했지만 자식 클래스에서 should have [public, protected] no-arg constructor 가 발생했다. 시도해본 방안 자식 클래스에 생성자를 추가해봤는데 super()를 넣으라는 ide의 권고가 있었고 (넣지 않으면 에러 발생) 넣고 부모 클래스 형..
스프링 부트와 AWS로 혼자 구현하는 웹서비스
http://www.yes24.com/Product/Goods/83849117 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - YES24 가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다. 경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링 www.yes24.com 스프링 부트 도서 중 명저라고 불려도 손색없다. 부트에 관해 깊게 들어가지 않으면서 핵심을 이해하기 쉽게 알려주는 도서는 정말 찾기 어려운데 이 책이 딱 그런 책이다. 물론 스프링을 접한 상태에서 봐야 한다. 이 도서의 가장 큰 장점은 왜?라는 질문이다. 많은 기술책에서 프레임워크 같은 것을 사용할 때 이유를 알려주지 않고 그냥 사용하지만,..
java.net.UnknownHostException
java.net.UnknownHostException: localhost1956 상황 등록기능 테스트 진행중 발생했다. 뒤의 localhost숫자는 랜덤하게 변경된다. Create을 만들고 Junit의 TestRestTemplate과 LocalServerPort를 생성해 http://localhost" + port + "/api/v1/pre 로 요청했는데 ResponseEntity responseEntity = restTemplate.postForEntity(url, preRequestDto, Long.class); 이곳에서 발생했다. 전에 스프링 부트와 AWS로 혼자 구현하는 웹 서비스에서 클래스 명만 다르고 나머지는 같은 프로젝트를 진행할 땐 발생하지 않았는데 이번에는 왜 발생했는지 모르겠다. 시도해..
스프링: 느슨한 결합력과 DI
느슨한 결합력 Service: 사용자의 요구사항이 담기는 곳 Dao: 자바를 사용해서 Service에서 요청하는 요구사항을 전달함 (데이터베이스에 접근하여) 시나리오 사용자가 요구사항 전달함 Service가 딱 보니 Dao1로 해결가능 Dao1이 DB에 접근하여 데이터를 가져와서 Service에 전달 Service는 사용자에게 전달 사용자가 받은 후 아... 이거 조금 바꿔달라 요구함 Service는 Dao2를 생성 후 다시 사용자에게 전달 사용자가 다시 수정해달라함 반복... 수정하는 방법엔 두 가지가 존재한다. dao1코드를 수정 dao1은 그대로 두고 dao2를 생성 1번 방식은 다시 dao1이 필요한 경우 다시 수정을 해야한다 2번 방식은 service는 dao1을 가리키고 있기 때문에 servi..
3주차
1. 2주차 미흡한 부분 완료 (학점 산출 프로그램을 람다 및 스트림 활용해서 제작하기까지) 2. 모던 자바 인 액션 (2,3,4,5,9,10,11장) 빠르게 훑어보기 3. https://repo.yona.io/doortts/blog/issue/1 책 빠르게 훑어보기 (다음주 개발에 필요함) 4. CRUD프로그램 제작 후 배포 사용자별 게시글 생성 수정 삭제기능 TDD방식으로 제작 Restful하게 구현 객체지향 제약조건 지키기 한 메서드에 오직 한 단계의 들여쓰기만 허용 https://developerfarm.wordpress.com/2012/01/26/object_calisthenics_2/ 함수는 10줄 이하로 작성 줄여쓰기 금지 (추후 페어프로그래밍 대비) else 최대한 사용 금지 Outh2 로..
TDD로 학점 산출 프로그램 #2 (학생클래스, 디테일)
이제 학생과 과목 클래스를 테스트 할 차례다. 학생 클래스는 학번 이름 수강하는 과목이 필요하다. 수강하는 과목은 평가 기준과 과목명 과목코드가 필요하기 때문에 참조형으로 생성한다. 나머지도 책을 참조하여 생성후 테스트 한다. 생성자 테스트코드 → 에러 → 클래스코드에 생성자 추가 → 통과 위와 같은 방식으로 과목 클래스도 수정한다. @Before public void 생성자(){ subject = new Subject("math", 1001, 0); student = new Student(20101521, "김민석", subject); score = new Score(55); basicEvalution = new BasicEvalution(); majorEvalution = new MajorEvalut..
TDD입문하기 - 학점 산출 프로그램 #1 (주의사항, 학점 계산)
주의사항 노션에서 작성 후 티스토리에 붙여넣어서 들여쓰기가 적용되지 않은 경우가 많음 junit 4.12버전 Do it 자바 프로그래밍의 마지막 챕터 학점 산출 프로그램을 활용해 TDD와 람다 및 스트림을 사용해보려 한다. 책은 도서관에서 빌리거나 이지스 퍼블리싱 홈페이지에 가면 코드가 있으니 참조하면 되지만 설명없이 코드만 봐선 이해하기 쉽지 않다. 이 방식이 정답은 아니며 구현 방식에 관한 지적은 환영합니다! TDD 순서 테스트코드 생성 → 실패 → 보완 → 성공 순으로 진행한다. 클래스를 생성하지 않고 테스트코드 먼저 작성하고 클래스 미생성으로 실패한 후 클래스를 만들고 다시 성공하는 과정이다. 테스트 전 준비사항 핵심은 무엇을 테스트 할 것인가? 큰틀에서 보자면 학생이름 과목 점수를 입력받아 학점..
모던 자바 인 액션 후기(1회독)
11장까지만 읽고 중단했다. 이 책은 입문자는 절대 추천하지 않는다. 스프링 프로젝트를 한 두개 진행한 나는 자바를 깊게 파고드니 배웟던 것도 기억나지 않았고 람다식은 도통 무슨소리 하는지 이해하기 어려웠다. 하지만 이해하기 어려웠음에도 책이 정말 잘 쓰여졌다는게 느껴졌다. 어느정도 숙련자들이 책을 보기에 최대한 어렵지 않게 적으려고 노력했다. 입문자인 나는 11장 까지 읽으며 그만 읽으려는 생각을 수십번도 더 했지만 스터디장의 입장에서 차마 못하겠다는 소리를 하지 못해 울며 겨자먹기식으로 읽었다. 도통 무슨소린지 모르겠지만 그래도 감이 잡히고 다시 읽어보고 싶은 책이었다. 읽을 수록 람다와 스트림에 관해 이해가능했다. 하지만 람다를 써보라고 하면 하나도 생각나지 않는다... 간단한 프로젝트를 람다로 구..
자바와 JUnit을 활용한 단위테스트 후기
http://www.yes24.com/Product/Goods/75189146?OzSrank=2 자바와 JUnit을 활용한 실용주의 단위 테스트 - YES24 『실용주의 프로그래머』의 앤디 헌트와 데이브 토마스가 알려주는실용주의 단위 테스트!클린 코드의 핵심인 단위 테스트, 어디서 어떻게 시작해야 할까? 책에서는 단위 테스트의 개념과 작성 www.yes24.com JUnit을 처음 사용하거나 자바 프로젝트를 많이 진행하지 않았다면 어려운 책이다. 책도 그렇게 친절하진 않아서 메인 클래스 외엔 따로 깃에서 코드를 찾아봐야한다. 메인 클래스만 보고 다른 클래스의 내용을 짐작할 수 있다면 큰 문제는 없다. 테스트의 개념을 잡는데 입문자가 봐도 좋은점이 있다. 이해가 되지 않은 부분은 넘기고 보고 두껍지 않은 ..
처음 배우는 스프링부트2 후기
http://www.yes24.com/Product/Goods/64584833 처음 배우는 스프링 부트 2 - YES24 ★ 구현 순서에 맞춰 프로젝트를 진행하며 배우는 실전 입문서★ 이 책은 스프링 부트 입문자의 눈높이에 맞춰 스프링 부트 환경 설정부터 커뮤니티 게시판 구현까지를 다룬다. 스프링 부트의 www.yes24.com 앞에 '처음 배우는' 부분은 빼고 제목을 지었으면 어땠을까... 스프링으로 프로젝트를 개발하고 부트 관련 인강도 한 번 들었지만 이해하기 어려웠다. 이 책은 부트를 처음 접하는 사람보다 많이 접해본 사람들이 대상이다. 대략적인 진행방식은 이렇다 챕터가 시작되면 빈 메서드를 적고 설명한다 그 후 모든 기능을 다 넣은 뒤에 필요한 부분만 설명하고 넘어간다 그래서 어렵다. 모던 자바 ..