전체 글 (596) 썸네일형 리스트형 JUnit 5 기본 /* 이 글은 White Ship 님의 '"더 자바, 코드를 테스트하는 다양한 방법" 인프런 강좌를 듣고 정리한 글입니다. 강좌 링크> www.inflearn.com/course/the-java-application-test/dashboard */ [ 1 - JUnit 5 환경 ] A. 세부 모듈로는 Jupiter, Vintage, Junit Platform이 있다. B. 우리가 쓰는 @Test 어노테이션은 Junit Platform의 지원이 있기 때문이다. C. Java 8 이상에서 작동하며 대부분의 기능은 Jupiter 안에 있다. [ 2 - JUnit 5 기본 ] A. 테스트 클래스와 테스트 함수에 굳이 public 키워드를 붙일 필요가 없다. B. @BeforeAll, @AfterAll 어노테이션.. Clean Architecture (로버트 C. 마틴) - 3 이 글은 로버트 C. 마틴의 'Clean Architecture'를 읽고 정리한 문서이며, 총 3부작으로 구성되어 있습니다. Clean Architecture (로버트 C. 마틴) - 1 Clean Architecture (로버트 C. 마틴) - 2 [ CHAPTER 5 ] 아키텍처 [ 15장 – 아키텍처란 ? ] #1. 무엇보다도 소프트웨어 아키텍트는 프로그래머이며, 앞으로도 계속 프로그래머로 남는다. 소프트웨어 아키텍트라면 코드에서 탈피하여 고수준의 문제에 집중해야 한다는 거짓말에 절대로 속아 넘어가서는 안 된다. 소프트웨어 아키텍트는 코드와 동떨어져서는 안 된다. 소프트웨어 아키텍트는 최고의 프로그래머이며, 앞으로도 계속 프로그래밍 작업을 맡을 뿐만 아니라 동시에 나머지 팀원들이 생산성을 극대화할 .. Clean Architecture (로버트 C. 마틴) - 2 이 글은 로버트 C. 마틴의 'Clean Architecture'를 읽고 정리한 문서이며, 총 3부작으로 구성되어 있습니다. Clean Architecture (로버트 C. 마틴) - 1 Clean Architecture (로버트 C. 마틴) - 3 [ CHAPTER 3 ] 설계 원칙 [ 7장 – SRP: 단일 책임 원칙 ] #1. 하나의 모듈은 하나의, 오직 하나의 액터에 대해서만 책임져야 한다. #2. SRP는 서로 다른 액터가 의존하는 코드를 서로 분리하라고 말한다. [ 8장 – OCP: 개방 폐쇄 원칙 ] #1. 소프트웨어 개체는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다. #2. OCP는 시스템의 아키텍처를 떠받치는 원동력 중 하나다. OCP의 목표는 시스템을 확장하기 쉬운 동시에 .. Clean Architecture (로버트 C. 마틴) - 1 이 글은 로버트 C. 마틴의 'Clean Architecture'를 읽고 정리한 문서이며, 총 3부작으로 구성되어 있습니다. Clean Architecture (로버트 C. 마틴) - 2 Clean Architecture (로버트 C. 마틴) - 3 [ CHAPTER 1 ] 소개 #1. 프로그램이 동작하도록 만드는 데 엄청난 수준의 지식과 기술이 필요하지는 않다. 언제든 어린 고등학생이라도 할 수 있는 일이다. 이들이 작성한 코드는 그다지 깔끔하지 않을 순 있지만, 동작은 한다. 프로그램을 동작하게 만들기는 그리 어려운 일이 아니기 때문이다. 하지만 프로그램을 제대로 만드는 일은 전혀 다르다. 소프트웨어를 올바르게 만드는 일은 어렵다. 소프트웨어를 제대로 만들려면 적정 수준의 지식과 기술을 겸비해야 하지.. postman으로 전송한 DTO가 계속 null로 온다면.. postman으로 POST 요청을 보낼 때 받는 쪽 Controller에서 DTO가 null인 상황이 나왔다. 처음엔 통신 쪽에 문제가 있나 싶었는데 결국 원인은 postman으로 DTO를 만들어서 보낼 때 JSON 형식이 제대로 되어있지 않았던 것이다. 클래스 명으로 묶을 필요가 없었는데 나는 클래스명으로 데이터를 한번 더 묶은 게 잘못된 형식의 원인이었다. { "id": 1, "title": "mi", "content": "con" } 위와 같이 보내면 JSON 타입으로 잘 변환되는데 { "MyDTO": { "id": 1, "title": "mi", "content": "con" } } 이렇게 감싸버려서 문제가 발생했었다. JPA 사용 도중 DB에 값이 있는데도 findById()가 empty라면.. Spring에서 JPA를 이용해 DB의 값을 꺼내오던 도중 분명히 있는 값인데도 Repository의 findById()를 호출하면 Optional.Empty를 반환하는 현상을 마주하였다. 그래서 findById() 직전에 findAll()을 먼저 호출해보았다. 그랬더니 findAll()의 결과값이 제대로 나왔고 findById()에서도 DB에 있던 값이 잘 리턴되었다. 흠... JPA 뉴비의 관점에선 영속성에 문제가 있는 건가 싶었다. 그런데 이 함수들을 호출하기 직전에 내가 persist()를 한 것도 아니었으니 DB와 1차 캐시간의 싱크가 어긋나진 않았을 거 같은데.. 구글느님께 물어보니 이 현상은 영속성보단 DB의 연관관계 쪽에 원인이 있었다. 나의 프로그램은 A객체가 자식으로 B객체를 가지고 있.. 스프링 기본 1. 웹 개발 방법은 1) 정적 컨텐츠, 2) MVC와 템플릿 엔진, 3) API 방식이 있다. 1) 정적 컨텐츠 => resources/static/에 있는 HTML등의 파일을 그대로 클라이언트에게 던져준다. => 동적으로 파일 내용을 변경할 수는 없다. 2) MVC와 템플릿 엔진 => 서버에서 파일을 필요에 따라 변경한 후 클라이언트에게 던져준다. => MVC는 Model, View, Controller 로 구성되어 있다. View는 화면을 그리는데 집중한다. Controller, Model은 Business Logic 관리에 집중한다. => 클라이언트 요청은 Controller에게로 전달되고, Controller가 보낸 요청은 ViewResolver에 의해 특정 View로 전달된다. => 클라이언트.. 데미안 (헤르만 헤세) “새는 알에서 나오려고 투쟁한다. 알은 세계다. 태어나려는 자는 하나의 세계를 깨뜨려야 한다. 새는 신에게로 날아간다. 신의 이름은 아브락사스.” “나는 내 속에서 솟아나오는 것, 바로 그것을 살아보려고 했다. 그것이 왜 그토록 어려웠을까?” 위의 두 구문은 나에게 다가오는 책 의 모습이다. 싱클레어는 기독교 집안에서 기독교 세계관을 교육받으며 자랐다. 싱클레어는 초등학생 시절 프란츠 크로머라는 질 나쁜 친구와 엮이면서 따뜻한 가족, 천국이 있는 기독교 세계에서 어둠의 세계로 빠져드는 경험을 한다. 이 때 데미안이라는 친구가 나타나 싱클레어를 어둠의 세계에서 구해준다. 데미안이 이 사건을 알고 나자 프란츠 크로머가 더 이상 싱클레어를 괴롭히지 않았기 때문이다. 그렇다고 데미안이 기독교 세계관을 곧이 곧대.. 이전 1 ··· 35 36 37 38 39 40 41 ··· 75 다음