전체 글 126

Model Mapper 사용법

maven repository 에서 model mapper 라이브러리 의존성을 추가 해줌 MainController에서 Bean으로 등록해줘야 사용할 수 있다. @SpringBootApplication public class HaedalApplication { public static void main(String[] args) { SpringApplication.run(HaedalApplication.class, args); } @Bean public ModelMapper modelMapper(){ return new ModelMapper(); } } ModelMapper는 Entity → Dto 로 변환할때 사용 되는데 그때 데이터를 변환하려면 Set 기능이 필요하기 때문에 Dto 에 @Setter ..

JAVA 2023.01.26

동작 파라미터화 코드 전달하기(2)

ApplePredicate 인터페이스를 구현하는 여러 클래스를 인스턴스화 하는 과정이 좀 복잡할 수 있다. → 익명 클래스를 사용해 보자 익명 클래스란? 자바의 지역 클래스( 블록 내부에 선언된 이름이 없는 클래스 이다.) 익명클래스를 만들면 클래스 선언와 인스턴스화 동시 진행 가능! 다섯번째시도 : 익명 클래스를 사용해보자 List redApples = filterApples(inventory, new ApplePredicate(){ public boolean test(Apple apple){ return RED.equals(apple.getColor()); } }) 위의 예제를 보면 클래스를 새로 만들지 않고 익명의 클래스를 만들어서 작성하였다. 그치만 익명의 클래스도 자리를 많이 차지하기 때문에 좀..

JAVA 2023.01.19

동작 파라미터화 코드 전달하기(1)

앞으로 모던 자바 인 액션 책을 읽고 기억해야 할 내용이나 새로 알게 된 내용을 정리해보려 한다. 아래는 2장 동작 파라미터화 코드 전달하기의 일부 내용이다. 우리가 어떤 상황에서 일을 하던 소비자의 요구사항은 항상 바뀐다. 시시각각 변하는 사용자 요구사항에 어떻게 대응해야 할까? → 동작 파라미터화를 이용하자! 동작 파라미터화란? : 아직은 어떻게 실행할 것인지 결정하지 않은 코드블록을 의미한다. 첫번째 시도 : 기존의 농장 재고목록 애플리케이션에 리스트에서 녹색 사과만 필터링 하는 기능을 추가해 보자! public static List filterGreenApples(List inventory){ List result = new ArrayList(); for (Apple apple : inventor..

JAVA 2023.01.10

비연결성(connectionless)

TCP/IP 기본적으로 연결을 유지를 한다. 하지만 안쓰는 요청들을 유지 하고 있는건 너무 비 효율적이다. 연결을 유지하지 않는 모델(HTTP) → 서버는 연결 유지 X, 최소한의 자원 사용 ( 요청이 들어올때만 연결을 시켜준다. ) 비 연결성 HTTP는 기본이 연결을 유지하지 않는 모델 일반적으로 초 단위의 이하의 빠른 속도로 응답 1시간 동안 수천명이 서비스를 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작음(예 ) 웹 브라우저에서 계속 연속해서 검색을 누르지 않음) 서버 자원을 매우 효율적으로 사용 할 수 있다. 비 연결성의 한계와 극복 TCP/IP 연결을 새로 맺어야 함 - 3 way handshake 시간 추가 웹 브라우저로 사이트를 요청하면 HTML 뿐만 아니라 자바스크립..

참고사항 2023.01.10

Stateful, Stateless

stateful(상태유지)과 stateless(무상태) 의 차이 : Http 특징 중 하나는 무상태 프로토콜(Stateless)을 유지한다. 상태유지 : 중간에 다른 점원으로 바뀌면 안된다. (다른 서버로 바뀌면 안됨) → 중간에 다른 점원으로 바뀔 때 상태 정보를 다른 점원에게 미리 알려줘야함 무상태 : 중간에 다른 점원으로 바뀌어도 됨 갑자기 고객이 증가해도 점원을 대거 투입 가능 갑자기 클라이언트 요청이 증가해도 서버를 대거 투입 가능 무상태는 응답 서버를 쉽게 바꿀수 있다. → 무한한 서버 증설 가능 상태 유지는 중간에 서버가 장애가 나면 클라이언트가 처음부터 다시 요청 해야함 (서버가 상태를 보관해서 생기는 문제) 무상태는 요청에 상태를 담아서 보내기 때문에 서버에 따로 상태를 보관하지 않는다...

참고사항 2023.01.10

TCP, UDP

IP 패킷 : 출발지 IP, 목적지 IP 등의 정보 TCP 세그먼트 : 출발지 port, 목적지 port, 전송 제어, 순서, 검증 정보 TCP 특징 전송 제어 프로토콜(Transmission Control Protocol) 연결지향 - TCP 3 way handshake (가상 연결) 데이터 전달 보증 순서 보장 신뢰할 수 있는 프로토콜 현재는 대부분 TCP 사용 1. TCP 3 way handshake SYN : 접속 요청 ACK : 요청 수락 참고 → 3. ACK 와 함께 데이터 전송도 가능하다. 저런 방식으로 데이터를 전송하면 1. SYN ( 접속 요청 ) 시 ACK 가 돌아오지 않는다면 전송을 중지 할 수 있다. → IP 프로토콜의 한계 중 비연결성 을 해결 2. 순서 보장 → 위와같은 일은 전..

참고사항 2023.01.04

IP

인터넷 프로토콜 스택의 4계층 애플리케이션 계층 : HTTP, FTP 전송 계층 : TCP, UDP 인터넷 계층 : IP 네트워크 인터페이스 계층 IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비 신뢰성 패킷이 순서대로 안오면?( 패킷이 전송 시 서로 다른 노드를 탈수가 있음 ) 중간에 패킷이 사라지면? 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? → 이러한 한계들을 해결해 주는게 TCP, UDP 이다.

참고사항 2023.01.04