일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬
- html tag
- 에러
- 브랜치
- @builder
- 프로그래머스
- 기본생성자
- github
- 상속
- HashSet
- git
- 부트캠프
- HTML
- 부스트코스
- @AllArgsConstructor
- 코드업
- entity
- java
- stringbuffer
- @NoArgsConstructor
- SQL
- CRUD
- Python
- 깃허브
- 알고리즘
- Codeup
- DTO
- 캡슐화
- 자바
- lv1
- Today
- Total
목록자바(Java)/스프링부트(SpringBoot) (9)
잉?
회원가입 시 username과 password의 구성이 알맞지 않으면 에러메시지와 statusCode: 400을 Client에 반환하기 요구사항에 맞게 코드를 작성하려 한다. UserController.java @PostMapping("/user/signup") public ResponseEntity signup(@RequestBody @Valid SignupRequestDto requestDto) { try{ userService.signup(requestDto); }catch (IllegalArgumentException e){ return ResponseEntity.badRequest().body(new ApiResponseDto("중복된 username입니다.", HttpStatus.BAD_REQ..
Mockito란? 단위 테스트를 위한 프레임워크이다. 가짜 객체인 Mock을 생성해 주고 관리하고 검증할 수 있도록 지원해 주는 프레임워크이다. service의 update메서드를 테스트하기 위해서는 service 객체를 생성할 때 필요한 repository를 전달해 줘야 한다. 하지만 이러한 인터페이스들을 어떻게 전달해야하는지 막막할 때 Mockito를 사용한다고 보면 된다. Mock object(가짜 객체)? 개발한 프로그램을 테스트할 때 테스트를 수행할 모듈과 연결되는 다른 모듈을 흉내 내는 가짜 모듈을 생성하는 객체이다. 분리되기 어려운 클래스들을 가짜객체를 통해 분리한다. 여기서 분리되기 어려운 클래스들의 예시로는 Controller, Service, Repository가 있다. Controll..
- x축이 Time - y축이 Costs 1. 개발 2. 단위 테스트(Unit Test) 3. QA Testing 4. Prodiction(실 서비스 운영 환경) 버그를 사전에 발견하여 기하급수적인 비용의 증가가능성을 사전에 방지하기 위해 단위 테스트를 진행한다. [단위 테스트? (Unit Test)] 단위 테스트는 작은 단위로 쪼개 각 단위가 정확하게 동작하는지 예상대로 동작하는지 검사 및 확인하는 테스트이다. 단위의 크기가 작을 수록 복잡성이 낮아진다. 따라서 단위의 크기를 작게하여 최대한 간단하고 쉽게 작성해야 한다. 만약 방대한 코드를 가진 소프트웨어에 버그가 발생되었다. 디버깅을 통해 범위는 좁혀졌지만 어떤 클래스에 버그가 있는지 정확히 알지 못한다. 이 클래스에 버그가 있는것 같아서! 코드를 ..
Service는 비즈니스 로직이 있는 곳이다. DB 저장 또는 조회가 필요할 때 Repository에 요청하는 곳이기도 한데 요청하기 위해서는 DTO에서 Entity로 변환해줘야 한다. 그리고 요청받은 데이터(Entity)를 다시 DTO로 변환해서 컨트롤러(Controller)로 보내줘야 한다. 좀 더 자세한 정보는 https://dahlia15.tistory.com/73 그 과정을 살펴보겠다. Service public CommentResponseDto createComment(Long id, CommentRequestDto requestDto, UserDetailsImpl userDetails) { // dto -> entity Blog blog = blogRepository.findById(id)...
💡 Entity란 무엇이며, 엔티티 클래스 안에서 사용하는 어노테이션에 대해 살펴보자. Entity(엔티티)란? 데이터베이스에서 영속적으로 저장되고 관리되는 객체를 가리킨다. 엔티티는 데이터베이스 테이블의 레코드(행)에 해당하고, 객체 지향 프로그래밍에서는 해당 데이터를 표현하는 클래스로 구현된다. 엔티티는 영속성을 가지고, 이는 객체의 상태가 데이터베이스에 저장되고 관리되는 것을 의미한다. 영속성(Persistence): 엔터티는 영속적이라는 특성을 가지고 있다. 이는 객체의 상태가 프로그램 실행이 종료되더라도 계속해서 유지되며, 필요할 때 데이터베이스에 저장되고 관리된다는 것을 의미한다. 데이터베이스 테이블과 매핑: 엔터티 클래스는 데이터베이스의 테이블과 매우 유사한 구조를 가지며, 클래스의 인스턴스..
DTO (Data Transfer Object) 클래스에서의 toEntity메서드와 of메서드가 무엇일까? 우선 이 메서드들을 사용하는 이유를 알아보자면 entity 클래스와의 상호변환을 쉽게 하기 위함이다. 1. DTO와 entity 간의 변환 로직을 처리하여 코드의 가독성을 높이고, 2. 불필요한 반복 코드를 방지하여 애플리케이션 아키텍처를 유연하게 한다. toEntity 메서드 - DTO에서 Entity로 변환하는 역할을 한다. - 주로 데이터를 저장하거나 업데이트하는 작업에 사용된다. - 이 메서드는 entity를 생성하고, DTO에서 받아온 필드 값을 entity에 설정하여 반환한다. public Trade toEntity(User user) { return Trade.builder() // T..
빌더 패턴에 대해 알아보자 객체를 생성하는데 생성자 패턴 / 정적 메서드 패턴 / 수정자 패턴 / 빌더 패턴 등이 있다. 이중 권장되는 패턴이 빌더 패턴이다. 1. 필요한 데이터만 설정할 수 있다. - 새로운 변수가 추가되어도 기존 코드에 영향을 주지 않는다. - 불필요한 코드의 양을 줄인다. - 반복적인 변경이 있을 때 유용하다. 객체를 생성해야 할 때 하나의 파라미터가 필요 없는 상황이라고 한다면, 생성자 패턴이나 정적 메서드 패턴 같은 경우 더미 값을 넣어주거나 파라미터가 없는 생성자를 새로 만들어줘야 한다. Flower flower = new Flower("rose", "red"); public class Flower{ private String name; private String color; ..
스프링부트에서 데이터를 전달하는 두 가지 방식이 있다. 방식 1) Path Variable을 이용한 방식(경로를 변수로서 사용한다.) https://dahlia15.tistory.com/newpost/75 // 포스트 75번 게시글 방식 2) Request Param을 이용한 방식 https://dahlia15.tistory.com/newpost?id=75 // 포스트 75번 게시글 이 비슷해 보이는 두 가지의 방식이 어떤 상황에 적용해야 더 적합한지 알아보았다. Path Variable은 어떠한 리소스를 식별하고 싶을 경우에 사용하고, Request Param은 정렬/필터링을 원할 때 사용하는 것이 가장 이상적이라 볼 수 있다. 좀 더 쉽게 보자면 @PathVariable ? boards/1 - 1번 ..