일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 윤성우 저자
- 2475번
- 토마토
- 열혈 TCP/IP 소켓 프로그래밍
- 제프리리처
- Operating System.
- Spring
- 우아한 테크 세미나
- 스프링 입문
- 운영체제
- Window-Via-c/c++
- Four Squares
- redis
- n타일링2
- 스프링 핵심 원리
- BOJ
- FIFO paging
- Operating System
- TCP/IP
- inflearn
- 10026번
- C#
- HTTP
- C++
- 이펙티브코틀린
- 우아한레디스
- 에러핸들링
- 열혈 tcp/ip 프로그래밍
- OS
- 김영한
- Today
- Total
목록분류 전체보기 (206)
나의 브을로오그으
[전체 구조 다이어그램] [AppConfig] (중복을 제거하고, 한눈에 각각의 역할이 보일 수 있도록 분리하자.) package hello.core.order; import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscountPolicy; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.member.MemoryMemberRepository; public class AppConfig { public MemberService memberService() { return new MemberServ..
[관심사의 분리] - 애플리케이션을 하나의 공연이라 생각해보자. 각각의 인터페이스를 배역(배우 역할)이라 생각하자. 그런데! 실제 배역 맞는 배우를 선택하는 것은 누가 하는가? - 로미오와 줄리엣 공연을 하면 로미오 역할을 누가 할지 줄리엣 역할을 누가 할지는 배우들이 정하는게 아니다. 이전 코드는 마치 로미오 역할(인터페이스)을 하는 레오나르도 디카프리오(구현체, 배우)가 줄리엣 역할(인터페이스)을 하는 여자 주인공(구현체, 배우)을 직접 초빙하는 것과 같다. 디카프리오는 공연도 해야하고 동시에 여자 주인공도 공연에 직접 초빙해야 하는 다양한 책임을 가지고 있다. - 배우는 본인의 역할인 배역을 수행하는 것에만 집중해야 한다. - 디카프리오는 어떤 여자 주인공이 선택되더라도 똑같이 공연을 할 수 있어야..
새로운 할인 정책을 확장 서비스 오픈 직전에 할인 정책을 지금처럼 고정 금액 할인이 아니라 좀 더 합리적인 주문 금액당 할인하는 정률% 할인으로 변경하고 싶어요. 예를 들어서 기존 청책은 VIP가 10000원을 주문하든 20000원을 주문하든 항상 1000원을 할인했는데, 이번에 새로 나온 정책은 10%로 지정해두면 고객이 10000원 주문시 1000원을 할인해주고, 20000원 주문시 2000원을 할인해주는 것. [RateDiscountPolicy] package hello.core.discount; import hello.core.member.Grade; import hello.core.member.Member; public class RateDiscountPolicy implements Discou..
[테스트 케이스 만들기] package hello.core.order; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; public class OrderServiceTest { MemberService memberService = new MemberServiceImpl(); OrderService orderService = new OrderServiceImp..
[주문과 할인 도메인 설계] - 회원은 상품을 주문할 수 있다. - 회원 등급에 따라 할인 정책을 적용할 수 있다. - 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라(변경 가능) - 회사의 기본 할인 정책을 아직 정하지 못했다. 최악의 경우 할인을 정하지 않을 수 있다.(미확정) [Project Tree] [discount/DiscountPolicy] package hello.core.discount; import hello.core.member.Member; public interface DiscountPolicy { /** * @return 할인 대상 금액 */ int discount(Member member, int price); } [discount/FixDisco..
#1. 소켓의 프로토콜과 그에 따른 데이터 전송 특성 프로토콜이란? 쉽게 말해 대화에 필요한 통신규약을 의미한다. 컴퓨터의 관점에서 보면 컴퓨터 상호간의 대화에 필요한 통신규약이다. 서로 데이터를 주고 받기 위해 정해놓은 약속을 의미한다. 소켓의 생성 #include int socket(int domain, int type, int protocol); -> 성공 시 파일 디스크립터, 실패 시 -1 반환 domain : 소켓이 사용할 프로토콜 체계(Protocol Family) 정보 전달. type : 소켓의 데이터 전송방식에 대한 정보 전달. protocol : 두 컴퓨터간 통신에 사용되는 프로토콜 정보 전달. 소켓의 생성을 위해서는 매개변수에 대한 이해가 필수적이다. 프로토콜 체계(Protocol Fa..
[간단하게 실행해보기] package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; public class MemberApp { public static void main(String[] args) { MemberService memberService = new MemberServiceImpl(); Member member = new Member(1L, "홍길동", Grade.VIP); // 회원가입 memberService.join(member); // 회원조회 M..
비즈니스 요구사항과 설계 회원) - 회원을 가입하고 조회할 수 있다. - 회원은 일반과 VIP 두 가지 등급이 있다. - 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다.(미확정) 주문과 할인 정책) - 회원은 상품을 주문할 수 있다. - 회원 등급에 따라 할인 정책을 적용할 수 있다. - 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) - 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최약의 경우 할인을 적용하지 않을 수 도 있다.(미확정) 요구사항을 보면 회원 데이터, 할인 정책 같은 부분은 지금 결정하기 어려운 부분이다. 그렇다고 이런 정책이..
start.spring.io에 들어가서 project : gradle project spring boot : 2.7.1(안정적인 릴리즈 버전 아무거나) group : hello artifact : core java : 11 설정이 끝나면 generate 이후, core.zip 압축 파일을 풀고, intellij로 해당 build.gradle을 프로젝트로 열어주면 된다. 실행하여 다음과 같이 나오면 끝이다.
스프링이란? 스프링은 여러 기술들의 모음이라고 볼 수 있다. 가장 핵심은 스프링 프레임워크와 여러 스프링 기술들을 편하게 사용 할 수 있도록 도와주는 스프링 부트 그외 스프링 데이터, 스프링 세션, 스프링 시큐리티, 스프링 Rest Docs, 스프링 배치, 스프링 클라우드 등이 있다. 스프링 데이터 : RDBS, NoSQL 등 CRUD는 유사하기 때문에 이것을 편리하게 사용 할 수 있도록 도와주는 기술 (스프링 데이터 JPA를 가장 많이 씀) 스프링 세션 : 세션 기능을 편리하게 사용 할 수 있도록 도와주는 기능 스프링 시큐리티 : 보안과 관련된 기술 스프링 Rest Docs : API 문서와 Test를 엮어서 API 문서를 편리하게 작성 할 수 있도록 도와주는 기술 스프링 배치 : 데이터를 일정한 양만..