Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- mysqld.sock
- 레벨로그
- 알고리즘
- S2139
- KotlinInAction
- 트랜잭션속성
- 트랜잭션
- Google Place Photo API
- 자바비동기
- GithubOAuth
- DynamicWebProject
- java
- subprocess에러
- 트랜잭션성질
- servlet프로젝트
- jsp프로젝트
- 백준
- 테코톡
- 객체지향생활체조
- 우아한테크코스
- 코틀린뽀개기
- 무중단배포
- 데이터베이스락
- tomcat설정
- 코틀린기초
- kotlin
- ObjectCalisthenics
- 리버스프록시
- 코틀린
- 스프링트랜잭션
Archives
- Today
- Total
초이로그
준비하기1.Spring강의듣기(백엔드개발) 본문
회원관리예제-백엔드개발
- 비즈니스 요구사항 정리
- 일반적인 웹 애플리케이션 계층 구조
- 컨트롤러: 웹 MVC의 컨트롤러 역할
- 서비스: 핵심 비즈니스 로직 구현(ex. 중복 가입 방지 기능 등..)
- 리포지토리: DB 접근, 도메인 객체를 DB에 저장 및 관리
- 도메인: 비즈니스 도메인 객체(ex. 회원, 주문...)
- 회원 도메인과 레포지토리 만들기
- 회원 객체: [main]-[java]-[hello.hellospring]-[domain]-Member.java// 이름.식별자 필드
- 회원 레포지토리: 아직 데이터 저장소를 선정하지 않아 인터페이스로 구현 클래스를 변경할 수 있도록 설계. [main]-[java]-[hello.hellospring]-[repository]-MemberRepository.interface, MemoryMemberRepository.java // Member저장, id로 검색, name으로 검색, 전체조회 기능
- 회원 리포지토리 테스트케이스 작성
- JUnit 프레임워크
- assert(junit.jupyter.api) 활용시 - Assertions.assertEquals(member, result);
- assert(assertj) 활용시 - Assertions.assertThat(member).isEqualTo(result); assert문을 더 편하게 활용 가능
- @AfterEach: 각 테스트가 종료될 때마다 실행됨. 메모리 DB에 저장된 데이터 삭제
- 테스트는 각각 독립적으로 실행되어야함. 테스트 순서에 의존관계가 있으면 좋은 테스트라고 할수 없음.
- 회원 서비스 개발
- 비즈니스에 가까운 로직을 설계하여 기입
- [main]-[java]-[hello.hellospring]-[service]-MemberService.java: 회원가입(중복 회원 검증), 전체 회원 조회, id조회 기능
- 회원 서비스 테스트
- DI(Dependency Injection)을 주의: new 생성 2개 이상 주의
- Test는 빌드시 포함되지 않으므로 과감하게 한글로 메소드를 작성하기도 함(직관적)
- given(데이터가 주어져서) - when(실행하였을때 검증할 것) - then(원하는 결과)
- @BeforeEach: 각 테스트 실행 전에 호출됨
- 일반적인 웹 애플리케이션 계층 구조
문법정리
- [Type] Optional: null 반환시 에러가 유발될만한 상황을 optional을 통해 감싸서 반환함.
- Optional.ofNullable(value): 객체가 null값인지 확인. 만약 null인 경우, NullPointException이 아닌 비어있는 Optional객체 반환
- Optional.get(): 객체가 존재하는 경우 반환. null인 경우, NoSuchElementException 던짐
- HashMap.clear(): HashMap에 저장된 모든 객체 제거
'Spring' 카테고리의 다른 글
UriComponentsBuilder: builder() vs. builder(encoded) (0) | 2021.08.02 |
---|---|
준비하기0. Spring강의듣기(환경설정,웹개발기초) (0) | 2021.02.01 |