오늘 분석할 코드는 아래와 같다. 아래 코드의 정확한 원리가 궁금해서 assertThrows에 대해 정리해보고자 한다. assertThrows는 JUnit에서 제공하는 테스트 메소드 중의 하나이다. //memberService.join(member2)하면 IllegalStateException이 일어나야한다는 뜻 IllegalStateException e= Assertions.assertThrows(IllegalStateException.class, ()->memberService.join(member2)); assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); 일단 JUnit에서 제공해주는 메소드라고 하니 JUnit이 어떤 프레임워크인지만 아주아주 짧게 정..
SpringBoot로 Java를 오랜만에 사용하게 되었는데 아래 코드가 원리가 뭔지가 이해가 안돼서 Java 문법을 공부해보았다. 이번 포스트에서는 Stream의 개념을 다룬 후 아래 코드의 동작 원리를 분석해볼 것이다. public Optional findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } 일단 개념부터 짚고 넘어가보자. Stream의 용도와 구조 Java8에서부터 지원한 기능으로, 일종의 반복문을 간단하게 나타낸 것이라고 할 수 있다. Stream은 컬렉션이나 배열, 리스트 등에 있는 값들을 참고하여 그 값들에 대해서 연산을 해주는..
이 포스트는 인프런의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(무료) 강의 내용을 정리한 글이다. 스프링이 클라이언트에게 페이지를 보여주는 경우는 세가지가 있다. 정적 파일 제공 (ex: test.jpeg, test.html) 템플릿 엔진(html을 동적으로 바꾸는 애들)과 MVC(Model, View, Controller) API - JSON 형태로 클라이언트에게 직접 데이터를 내려주는 형식 오늘은 이 세가지에 대해 포스팅해보도록 하겠다. 정적 파일 제공 src/main/resources/static에 정적 파일 abc.txt를 저장했다고 해보자. 그러면 URL에서 검색할 때 localhost:8080/abc.txt로 그냥 접근하면된다. (단순히 URL에 파일 입력하면 ..
이 포스트는 인프런의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 내용을 정리한 글이다. 오늘은 아래 과정을 실습해볼 것이다. 1. 프로젝트 생성 2. 라이브러리 살펴보기 3. View 환경 설정 4. 빌드하고 실행하기 프로젝트 생성 https://start.spring.io/ 에 들어가서 스프링 프로젝트를 시작해준다. 2.x버전을 해야 Java 11버전으로 할 수 있다. 안그러면 오류가 난다. Gradle로 해주고, Dependencies에 Spring Web, Thymeleaf를 선택해준다. Thymeleaf는 템플릿 엔진이라고 한다. 다 설정한 후 generate 버튼을 눌러주고 압축을 해제해준다. 이후 이를 IntelliJ에서 Open as Project로 열면 ..