일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- 코드업
- HTML
- HashSet
- git
- 깃허브
- 기본생성자
- lv1
- DTO
- github
- 캡슐화
- 프로그래머스
- @NoArgsConstructor
- CRUD
- 파이썬
- java
- Python
- 깃
- Codeup
- stringbuffer
- @builder
- html tag
- 상속
- 부트캠프
- @AllArgsConstructor
- 부스트코스
- 에러
- 자바
- entity
- 브랜치
- Today
- Total
목록자바(Java) (24)
잉?
회원가입 시 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)] 단위 테스트는 작은 단위로 쪼개 각 단위가 정확하게 동작하는지 예상대로 동작하는지 검사 및 확인하는 테스트이다. 단위의 크기가 작을 수록 복잡성이 낮아진다. 따라서 단위의 크기를 작게하여 최대한 간단하고 쉽게 작성해야 한다. 만약 방대한 코드를 가진 소프트웨어에 버그가 발생되었다. 디버깅을 통해 범위는 좁혀졌지만 어떤 클래스에 버그가 있는지 정확히 알지 못한다. 이 클래스에 버그가 있는것 같아서! 코드를 ..
상속(Inheritance) 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다. extends와 implements 차이 메서드 또는 변수를 ‘구현’할 것인가 ‘사용’할 것인가에 따라 상속의 형태가 달라진다. extends 부모에서 선언, 정의하고 자식은 메서드, 변수를 그대로 사용 가능하다. 다중상속 불가능 일반 클래스와 abstract 클래스 상속에 사용된다. class가 class를 상속받을 때 사용 interface가 interface를 상속받을 때 사용 implements 부모 객체는 선언만 하고 정의는 자식에서 오버라이딩해서 사용 가능하다. 다중상속 가능 class가 interface를 사용할 때 implements를 쓴다. interface가 class를 사..
캡슐화(Encapsulation) 클래스 안에 서로 연관 있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것이다. 즉, 클래스의 내부 변수와 메서드를 하나로 패키징 하는 것이다. 정보은닉 캡슐화를 하는 중요한 목적 중 하나이다.(캡슐화 ≠ 정보은닉) 접근제어자를 통해 데이터를 보호하고, 보호된 변수는 getter나 setter 등의 메서드를 통해서만 간접적으로 접근이 가능하도록 하는 것이 캡슐화의 중요한 목적이다. 접근제어자 private < default < protected < public 순으로 많은 접근을 허용한다. private : 해당 클래스 안에서만 접근이 가능하다. default : 접근 제어자를 별도로 설정하지 않는다면 변수나 메서드는 default 접근 제어자가 ..
OOP(객체 지향 프로그래밍) - 객체를 기준으로 코드를 나누어 구현한다. - 자바의 경우 그 구성 부분 단위가 클래스이다. - (클래스는 설계도 / 구현체는 인스턴스) - OOP는 절차지향에 비해 사람의 사고방식과 비슷하다. OOP 대표적인 특징 💡 캡슐화(Encapsulation) 클래스 안에 서로 연관 있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것이다. 즉, 클래스의 내부 변수와 메서드를 하나로 패키징 하는 것이다. [JAVA] 캡슐화(Encapsulation)와 추상화(Abstraction)에 대해 알아보자 캡슐화(Encapsulation) 클래스 안에 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것이다. 즉, 클래스의 내부 변수와 ..
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): 엔터티는 영속적이라는 특성을 가지고 있다. 이는 객체의 상태가 프로그램 실행이 종료되더라도 계속해서 유지되며, 필요할 때 데이터베이스에 저장되고 관리된다는 것을 의미한다. 데이터베이스 테이블과 매핑: 엔터티 클래스는 데이터베이스의 테이블과 매우 유사한 구조를 가지며, 클래스의 인스턴스..