Home
Jia's Blog
Cancel

정리와 DIP

이제까지 배운 내용 객체 == 제공하는 기능 캡슐화: 외부영향을 최소화하기 위해 내부구현을 감춘다. 추상화: 공통된 기능을 interface로 빼서 상위클래스로 만든다. 구현시에는 그걸 상속받아서 구현한다. -> 상속을 하다보니 에러사항들이 생겨서 조립이 대안으로 도출됨 기능과 책임 분리 -> 적절히 분리하기 의존과 D...

기능과 책임 분리

기능 분해 하나의 기능(=책임)안에 세부적으로 기능을 나눌 수 있다. 각 분리된 기능들을 알맞게 나눠야 한다. 여기서 분배란, 기능을 하나의 클래스에서 다 구현하는게 아니라 객체클래스, service단, repository단으로 각 단계에 기능들을 알맞게 넣어준다. 위와 같이 분리했어도 점점 클래스, 혹은 메소드가 커지면 문제가 발생한다 -&...

의존과 DI

의존 기능구현을 위해 다른 구성요소들을 사용하는 것을 의미한다. (객체와 캡슐화 게시글 참고) 객체생성, 메소드 호출, 데이터를 사용하는것 모두를 의존한다고 표현한다. 의존하고 있다면 의존하는 대상이 변경될 경우, 그 변경이 전파될 가능성이 크다. (ex. 기존에 파라미터 3개 받던 메소드를 호출 -> 파라미터 2개로 변경 -> 호출했던 ...

상속보단 조립

상속 : 상속을 통해 상위클래스의 메소드들을 물려받고 거기에 메소드를 추가하는 식으로 상위클래스의 기능을 재사용, 확장하는 방법으로 활용한다. 추상화 : 비슷한 로직들을 따로 빼서 정의함 -> 메소드명만 보고도 어떤 기능을 하는지 대충 알 수 있어야 한다. -> 가독성을 높힌다. 상속 -> 아예 interface라서 상속을...

테스트 코드,, 그리고 마주한 4시간의 삽질,,

11.07 test코드 실행 에러(4h) test코드를 작성해서 실행했는데 에러가 나서 돌아가지 않는다.. 도대체 왜?.. 1. 외부설정을 불러오려 했으나 존재하지 않는다. @Value 를 통해 application.yml의 설정을 불러오고자 했으나 설정에 값이 존재하지 않아 계속해서 injection에러가 발생했다. application.yml에 ...

Exception

Exception API에 따라 세분화된 예외를 내려줘야한다. 단순히 4XX, 5XX 에러가 아니라 어느 Controller에서 어떤 예외가 발생했는지 세밀하게 예외를 내려줘야하는데 기존의 방식들(servlet 방식)은 그렇게 사용하기 힘들다. @ExceptionHandler : Spring에서 제공하는 예외처리 어노테이션 , 예외발생시 우선순위가...

다형성과 추상화

기존 게시글에서 “객체”란 “어떤 기능을 제공하는가” 로 정의했다. 그렇다면 객체지향에서 다형성이란 무엇일까? 다형성 이란? : 한 객체가 여러 타입(객체의 기능)을 갖는 것을 말하며 하나의 객체가 여러 객체의 모습을 갖는 걸 의미한다.(말 그대로 다형) 주로 상속을 통해 구현한다. 추상화 란? : 데이터나 프로세스 등을 의미가 비슷하거나 의미...

두 개의 객체를 반환하기

11.04 서로 다른 두 객체를 반환해야 하는 경우 return시 두 개의 객체로 반환해야 하는 경우, 어떻게 진행해야할까? 1) List<”Object”> 제일 처음에 썼던 방법으로, 모든 객체들의 모(母)인 Object로 선언한 리스트에 객체들을 담아서 반환한다. public List<Object> getMemberAndU...

Git Blog 생성 에러 (403)

git push -> Git Actions 실패 에러(403) - 상황 Fork로 레파지토리를 만들어서 깃허브 블로그 생성에 성공하였다. 출처: https://www.irgroup.org/posts/jekyll-chirpy/ (참고로 서비스용 브랜치 변경은 하지 못함..) 하지만 블로그에 글을 작성해도 잔디가 심어지지 않아서 포크 레파지토리...

Null Check

11.01 Null 체크를 하는 방법 (StringUtils, ObjectUtils) null은 값이 없는 것을 의미하며 ““(공백) 과는 다르다. 1) StringUtils StringUtils.isEmpty : null 이거나 공백(“”) 인 경우, true를 반환한다. public static boolean isEmpty(@Null...