본문 바로가기

우아한테크코스

(33)
DTO와 VO 2021-05-26글 [10분 테코톡] 🎼라흐의 DTO vs VO을 들으며 정리한 글입니다. DTO Data Transfer Object (데이터 전송 객체) 계층 간 데이터 교환을 위해 사용하는 객체 로직을 갖고 있지 않은 순수한 데이터 객체 데이터를 전송하는 바구니 getter/setter 메서드만을 가짐 VO value Object (값 객체) 값 그 자체를 표현하는 객체 서로 다른 이름을 가진 VO의 인스턴스가 모든 속성 값이 같다면 같은 객체 equals / hashCode를 오버라이드 필수 객체의 불변성을 보장 로직을 포함할 수 있음 DTO VS VO 웹 개발에서 사용하는 VO는 사실 DTO이다. 혼동의 원인은..? 이 책에서 getter와 setter가 있고, 데이터 전송을 위해 사용하는 객..
📋 테스트로 배우는 Spring Configuration 강의 2021-05-25글 배경 지식 강의 스프링 컨테이너와 스프링빈 컨테이너 스프링 컨테이너에 빈을 등록하기 위해서는 Configuration이 필요하다. XML Annotation 기반의 configuration java bean configuration XML로 Configuration 설정하는 예시 userRepository와 userService를 빈으로 등록함 ApplicationContext context = new ClassPathXmlApplicationContext("application-config.xml"); String[] beanDefinitionNames = context.getBeanDefinitionNames(); ClassPathXmlApplicationContext로 해당 X..
전략패턴 2021-05-24 글 [10분 테코톡] 📣 완태의 전략패턴을 들으며 정리한 글입니다. if - else의 문제점 example public double calculate(boolean isFirstGuest, boolean isLastGuest, List items) { double sum = 0; for (Item item : items) { if (isFirstGuest) { sum += item.getPrice() * 0.9; } else if (!item.isFresh()) { sum += item.getPrice() * 0.8; } else if (isFirstGuest) { sum += item.getPrice() * 0.8; } else { sum += item.getPrice(); } }..
Forward Proxy, Reverse Proxy, Load Balancer 2021-05-21글 [10분 테코톡] 🐿 제이미의 Forward Proxy, Reverse Proxy, Load Balancer을 들으며 정리한 글입니다. (Network) Proxy 정의 : 남을 대신하여 일을 처리함 (대리) Proxy Server 대신 처리하는 서버 클라이언트와 서버간의 중계 서버로, 통신을 대리 수행하는 서버 캐시/보안/트래픽 분산 등 여러 장점을 가질 수 있음 종류 Forward Proxy Reverse Proxy Forward Proxy 일반적으로 말하는 Proxy 예제 인터넷 속도를 향상 시키기 위해 proxy 설정 IP 추적을 방지하기 위해 Proxy 설정 클라이언트와 인터넷 사이에 위히 특징 캐싱 클라이언트가 요청한 내용을 캐싱 동일한 요청에 대한 응답 값을 캐싱함 장점..
📋 배포 1단계 퀴즈 답 2021-05-01글 브라우저에서 google.com를 요청할 때 통신 과정이 어떻게 이루어질까요? 1. 주소창에 google.com를 입력하고 Enter를 누른다. 2. 웹 브라우저가 다음과 같은 구문으로 URL을 해석한다. scheme:[//[user:password@]host[:port]][/]path[?query][#fragment] scheme : 접근할 방법을 정의해 둔 프로토콜 이름 프로토콜 구분자인 : 와, IP 혹은 도메인 네임 정보가 필요한 프로토콜이면 // 프로코콜마다 특화된 정보 3. URL이 문법에 맞으면 Host 부분을 인코딩한다. 4. HSTS (HTTP Strict Transport Sercurity) 목록을 로드해서 확인한다. 있으면 첫 요청을 HTTPS, 없으면 HTTP ..
📋 배포 인프라 강의 1 - Public Cloud, 통신 확인하기 2021-04-27글 Public Cloud란? Cloud 클라우드는 인터넷을 은유적으로 표현하는 말. 어디에든 있고 어떤 형태로든 변할 수 있다. 정확히는 인터넷을 통해 원격으로 접근할 수 있는 모든 것을 의미한다. (메일, 드라이브 등) Cloud Computing? 서버, 데이터베이스, 네트워킹 등 컴퓨팅 리소스를 인터넷을 통해 관리하는 것 클라우드를 사용하는 이유? 관심사의 분리 서비스를 만들려고 할 때 서비스의 본질에 대해 집중을 하기 위해서 사용한다. 우리의 서비스는 저장소에 있는 데이터를 서버에서 원하는 형태로 가공해 네트워크를 통해 사용자에게 전달한다. 우리는 데이터, 서버, 네트워크를 어떻게 관리할지만 관심을 두었다. 그렇다면 실제 서비스 할때를 생각해보자. 서비스할 경우 고려할 점 데이..
📋 Spring Core 막 적은 강의 노트 2021-04-20글 객체의 의존 관리는 스프링이 한다. 스프링은 개발자를 대신해서 객체들을 생성하고 관리하는 일을 한다. ChessService에서 ChessDao 의존하기 변경에 취약하다 의존 관계를 개발자가 직접 관리하려면 복잡하다. 스프링 컨테이너가 관리해준다. 컨테이너 담아놓는 용기 스프링에서는 스프링이 활용할 객체들을 담아놓은 용기를 말한다. Bean으로 등록하는 기준? 프로그램 별로 공통적으로 쓸 수 있는 대상 레이어에 대한 객체들을 재사용할 수 있는데 이들을 빈으로 관리한다. 상태가 없는 객체를 빈으로 등록한다. -> 빈으로 등록 하려면 상태가 없어야 한다. 설정의 메타 데이터(Configuration Metadata)를 이용해 스프링 컨테이너에 담아놓는다. 컨테이너에 담으면 빈으로 등록된..
[코드리뷰 정리] Level 1. 체스 미션 - Service Layer, DAO와 Repository 2021-04-10글 MVC와 Service 이번 미션에서 DB를 적용하면서 MVC 패턴에 추가로 Service 레이어를 도입하였다. 또한 DAO와 데이터 전달을 위한 DTO를 처음 사용했는데, DTO를 정리하고 DAO에 대해서도 새롭게 배운 부분이 많아 정리 ✍️ 휴의 코멘트에 답변을 달다가 나의 코멘트 내용을 정정해주면서 같이 주신 참고자료가 있는데, 서비스 계층과 비즈니스 로직이라는 개념이 다르다는 것을 제대로 인지하지 못하고 있었던 것 같다. 때문에 휴가 주신 MVC 패턴과 Service 레이어에 관한 글을 읽고 간단히 정리해본다. 각 계층에 대한 개념은 조금씩 상이하니 일단 블로그 글은 서비스 계측과 비즈니스 로직에 대한 참고 정도만 한 수준에서 정리하고 다음 레벨에서 상세히 잡아가는 것이 좋겠..