일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Javascript
- kafka
- 필드 주입
- 스프링 부트 기본
- 스프링 부트
- 스프링 컨테이너
- spring
- resultMap
- sqld
- SQL
- 스프링 프레임워크
- DI
- DIP
- 싱글톤
- assertThrows
- thymeleaf
- assertThat
- 스프링부트
- JPA
- 스프링 부트 입문
- @Configuration
- jdbc
- db
- 스프링 빈
- 생성자 주입
- mybatis
- Effective Java
- java
- springboot
- 스프링
- Today
- Total
목록Framework/Spring Boot (28)
선 조치 후 분석

회원 리포지토리 테스트 케이스 작성 만들었던 Repository가 정상 작동할까?라는 의문이 들기 마련이다. 이거를 검증하기 위해서 테스트 코드를 작성해서 검증해야 한다. 보통 main메서드 또는 Controller로 해당 기능을 검증하지만 이렇게 하면 반복적으로 하기에는 시간과 노력이 많이 들고 어렵다고 한다. 그래서 Junit이라는 프레임워크로 테스트 코드를 작성해서 테스트 코드를 실행하는 방법이 있다. 1. Boolean으로 True, False 확인 - Save메서드 검증 하지만, 글자로 보는 게 불편하다면, Assertions(org.junit.jupiter.api)을 사용해서도 테스트 결과가 파악 가능하다. 2. Assertions(org.junit.jupiter.api) - Save메서드 검..
회원 도메인과 리포지터리 만들기 + 람다식이란? + NPE를 방지해주는 Optional 클래스 1. 회원 객체(Member) package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 2. MemberRepository package hello.hellospring.repository..

비즈니스 요구사항 정리 데이터 : 회원ID , 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음 (가상의 시나리오) 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 도메인 객체를 갖고 핵심 비즈니스 로직 구현 (ex : 회원ID 중복가입 방지) 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체 (ex : 회원, 주문, 쿠폰 등등 주로 DB에 저장하고 관리됨) 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용 구체적인 ..

웹을 제작하는데 있어서 정적 컨텐츠를 제외하고는 이 2가지가 있다고 합니다. 1. 템플릿엔진을 통해서 화면을 랜더링해서 HTML을 웹브라우저에 넘겨주는 방식 2. API 사용하는 방식 => 객체를 반환하는 방식 (객체를 JSON으로 반환) @GetMapping("hello-string") @ResponseBody // HTTP 헤더, 바디부에서 바디부에 직접 넣어주겠다는 의미 public String helloString(@RequestParam("name") String name) { return "hello " + name; // 위에랑 다른 점은, View가 없이 그대로 내려간다. } @ResponseBody 는 HTML의 Body부에 직접 넣어주겠다라는 의미라서, 소스 코드를 봐도 Body부만 표..

MVC : Model, View, Controller 과거에는 View와 Controller가 분리되어 있지않고, View에서 다 처리(JSP사용해서) 하는 'Model1' 방식이었다. MVC처럼 나눠주는 이유는, 각각의 역할이 있다. Controller - 비즈니스 로직, 서버와 관련된 일을 처리하는데 집중 View - 화면을 그리는데에 모든 역량을 집중 Thymeleaf의 장점 : 서버없이 HTML을 오픈해서 볼 수 있다. http://localhost:8080/hello-mvc을 URL에 치고 들어가면 아래와 같이 에러가 발생한다. @GetMapping("hello-mvc") public String helloMvc(@RequestParam(name = "name", required=true) St..

정적 페이지 - 파일을 그냥 웹으로 내려주는 방식 MVC와 템플릿 엔진 - 뭔가 HTML을 서버에서 프로그래밍을 해서 동적으로 내려주는 방식 (요즘 사용하는 것) API - 만약 안드로이드, IOS를 같이 개발해야한다면 JSON을 사용해서 클라이언트에게 전달하는 방식 정적페이지 생성 1. resources -> static 폴더안에 html파일을 하나 만들어서 URL에 검색하면, 정적페이지가 생성된다. 설명 내장 톰켓 서버가 요청을 받고 컨트롤러에서 우선적으로 hello-ststic 컨트롤러가 있는지 확인 없으면, resources->static 안에서 확인