목록자바/자바 실습 (37)
seong
Proxy패턴이란? Proxy패턴은 쉽게 말해 요청과 응답에 필터링 역할이 생긴다. 서버의 요청과 응답 전에 Proxy를 거쳐 필터링(문지기) 역할을 수행 하게된다. 코드를 보면 Adapter과 비슷하게 생겼지만 엄연히 다른 역할을 하고 있다. Adapter패턴 1. 클라이언트의 요청으로 기존의 코드에서 기능이 필요함. 2. 기존의 코드를 복제한 후 기능을 추가 여기까지 1. 기존의 코드 2. 기능이 추가된 Adapter코드가 있다. 3. 클라이언트의 요청에 의해 Adapter로 통과해 실행 하거나, or 기존의 코드를 통과할 수 있다. Proxy패턴 1. 클라이언트가 요청을 한다. 2. Proxy를 거쳐서 서버에 요청된다. 3. 서버에서 처리한 후 다시 Proxy를 거쳐서 클라이언트에 응답된다. 즉, ..
어뎁터 패턴이란? 기존의 코드에서 요구사항에 필요한 기능이 하나 더 추가되었을 때 기존의 코드를 수정,변경하지 않고 Adapter를 활용해 기능을 추가하는 방식이다. 예시를 보면서 확인 이전 커피 예제에서 단순 시럽 추가 기능 만들기 조건 - 전략패턴을 지키면서 추가 Adapter은 기존 코드의 기능은 모두 담고 있고 기능 하나만 더 추가한다, 즉 기존 기능 복사 + 기능 추가이다. Adapter은 기존 기능이 필요하기 때문에 생성자로 주입 받고 오버로딩을 활용한다. 코드 참고 주소 - https://github.com/seong9566/DesignPattern FakeAdapter FakeAdapter 가 왜 필요한가? 아래 코드는 요구사항에 클레임 받고 -> 이메일 보내고 -> 이메일의 답장을 DB에..
OCP (Open Closed Principle) 객체지향의 설계 원칙중 하나이며, 소프트웨어를 개발할 때 기존의 코드를 변경, 수정하지 않으면서 기능을 추가할 수 있도록 설계 하는 것을 말한다. 예시로 만들면서 확인 아메리카노,카페라떼가 있고 커피 머신에서 아메리카노,카페라떼를 호출해서 만들어주는 역할을 한다. App이 Main의 역할 실행을 해주게된다. Americano.java CafeLatte.java CoffeeMachine.java App.java 전략패턴이란? 추상적인 것에 의존 하는 것이다. 위의 예로 보면 아메리카노,카페라떼가 있다면 이 두개를 묶어 "커피"라고 정의할 수 있다. 그럼 커피 라는 추상클래스를 만들어 이것들을 상속받아 사용 하는 것이다. 전략패턴을 사용하면 얻을 수 있는 장..
싱글톤 패턴을 사용하는 이유 보통 처음 코딩을 시작하면 객체를 생성해 사용 하기위해 President를 사용하려면 President p1 = new President("name"); 이렇게 객체를 생성 하게 된다. 예를 들어 서비스가 있고 이용하는 사람이 100명이 있다. 100명의 사람이 있으므로 100개의 서비스 객체를 만드는것이 아니라, 1개의 서비스를 100명이 사용을 해야한다. 이런것을 싱글톤 패턴 이라고 한다. 코드로 보면서 확인 1. 사람1 이라는 생성자를 만들어 주고 private로 외부에서 수정, 변경이 불가능하게 해준다. 2. 외부에서 호출, 접근은 가능해야 하므로 static을 사용해준다. 그럼 App에선 main이 실행될 때 static 메모리 영역에 생성되어 접근이 가능해진다. P..
Json 데이터를 자바에서 주고 받기 위해 Gson 라이브러리 설치 1. 많이 다운로드 된 버전 선택 https://mvnrepository.com/artifact/com.google.code.gson/gson/2.8.5 2. 프로젝트 라이브러리로 등록 공공데이터 JAVA와 통신 1. 공공데이터 홈페이지 로그인 -> 마이페이지 2. 데이터 활용 신청 3. 조회 서비스 클릭 후 아래 "초단기실황조회"사용 ServiceKey 위쪽 일반 인증키를 복사해서 넣기 dataType Json base_date 원하는 날짜 dast_time 원하는 시간 nx , ny 현재 위치를 나타내는 값 (확인은 문서를 확인 해야한다.) 미리보기를 클릭하면 아래와 같은 JSON 데이터가 나온다 4. 주소를 복사해서 자바에 넣어주기..
기본 베이스 소스코드는 이전 자바 실습 코드를 활용해 작성 기존 기능(한가지 기능만 가능) Server - 데이터 받기, 읽기 Client - 데이터 전송, 쓰기 해볼것 스레드를 이용해 Server, Client 모두 데이터를 읽기, 쓰기 모두 가능하게 할 것이다. 메인 스레드 - 데이터 쓰기 서브 스레드 - 데이터 받기 Server 작성 1. 타겟으로 할 클래스 생성 2. 데이터 받기 메서드 작성 작성하면서 전역 변수로 필요한 것들을 모두 전역으로 선언 해주었다. 3. 메인에서 실행할 메인 스레드 생성 run으로 실행 하면 동기적 실행이 된다. -> start로 실행 4. 메인에서 데이터 쓰기 스레드 작성 키보드로 입력 받아서 전송 한다. \n가 되면 전송을 한다 -> 이게 없으면 전송이 안된다 \n을..
1. Dto를 생성 2.Client 에서 Dto 객체 생성 Gson 라이브러리 사용해 JSON 데이터로 전송 결과 화면 Dto에 변수로 넣어둔 code,msg,data가 출력 되었다. Client package sock.ex03; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; import com.google.gson.Gson; public class MyClientSocket { Socket socket = new Socket(); public void init() { try ..
스레드의 실행에는 두 가지가 있다. 1. 동기적 실행 - 프로그램의 실행에 순서가 있는 프로그램. 2. 비동기적 실행 - 프로그램의 실행에 순서가 없는 프로그램. Thread.sleep - 단위 : 1 / 1000 , 실행 부분을 1초에 한번씩 동작 비동기 방식 , 스레드 작성해보기 1. 스레드의 내부 정보 확인 스레드는 Runnable를 상속 받는다. 2. Runnable 내부 정보 확인 Runnable는 인터페이스이며 추상 메서드가 한개 있다. 3. RealThread 작성 1) Runnable 인터페이스를 상속 받는다. 2) 내부에 추상 메서드를 사용하기 위해 메서드 생성 해준다. 4. main에서 확인 FakeThread 작성 4 - 1 .RealThread 작성(1) Thread 스레드 객체를 ..