목록Java (13)
Legday
어댑터 패턴은 추가 기능을 추가해야 할때 본코드를 건드리지 않고 Adapter를 생성하여 기존코드를 그대로 활용하면서 기능을 추가하는 패턴을 말한다. - 위와 같이 Client가 String데이터를 요청할 때 서버에서는 DB로 Insert하는 로직이 있다. - 하지만 Client가 String을 Integer로 변환하여 DB에 Insert해달라는 추가 요청이 생기면 본코드를 수정하는 것 보다는 Adapter하나를 생성하여 기존 로직(String->Insert)를 그대로 가져오면서 String->Integer로 바꾸는 기능만 추가하여 생성해준다. 이런 패턴이 Adapter Pattern 이다. - 앞에 포스팅에서 전략패턴에 썻던 소스코드를 활용하겠습니다. - Americano에 시럽추가하는 기능을 요청하였..
전략패턴의 가장 핵심은 구체적인것에 의존하지 않고 추상적인것에 의존하는 패턴이다. 객체지향설계의 기본원칙 SOLID중 OCP와 DIP를 위배하지 않는 패턴이다. OCP(Open Closed Principle) 란? - 개방폐쇄의 원칙으로 쉽게 말해서 본 코드를 수정하지 않게 확장성있게 코드를 짜는 원칙이다. 그렇게 짜야 나중에 새로운 기능을 추가할때 본코드를 수정하지 않고 기능만 추가 가능하므로 시간을 절약할 수 있다. DIP(Dependency InversionPrinciple) 란? - 의존관계 역전 원칙으로 구체적인것에 의존하지 않고 추상적인것을 의존하게 코드를 짜는 원칙이다. 전략패턴 - 예를 들어 커피를 제작하는 클래스(CoffeeMachine)가 있고 커피종류 클래스(Americano, Caf..
자바 디자인 패턴이란? 코드를 짜는 패턴을 말한다. 디자인 패턴에 맞게 코드를 짜서 개발을 하면 개발이 끝나고 유지보수 단계에서 수정이 원활해진다. 종류 1. 싱글톤 패턴(Singleton Pattern) 2. 전략 패턴(Strategy Pattern) 3. 어댑터 패턴(Adapter Pattern) 4. 프록시 패턴(Proxy Patter) 5. 탬플릿 패턴(Template Patter) 1. 싱글톤 패턴(Singleton Pattern) - 싱글톤은 뜻 그대로 하나의 객체만 생성하고 싶을 때 쓰는 자바 패턴이다. - 예를 들어 President라는 클래스를 생성한다면 생성자를 public으로 설정하기 때문에 여러 클래스에서 new하여 객체를 생성할 수 있다. 하지만 싱글톤 패턴은 오직 한개의 객체만 ..
1) IP주소 , Domain 이란? - DNS를 알기전에 IP주소와 Domain을 먼저 알아야한다. - IP : IP는 Internet Protocol 의 약자로 데이터를 주고받기 위한 통신규약이다. 이때 IP주소를 통해 도착지와 출발지를 알 수 있다. - Domain : 도메인은 쉽게 말해서 ip의 별칭이라고 보면된다. - 우리가 잘 아는 네이버는 naver라는 도메인을 가지고 이 도메인은 ip주소를 가지고있다. - 이때 DNS은 각 IP주소와 Domain을 기억하고 있는 서버 같은곳이다. 2) DNS의 동작원리 - 우리가 인터넷 브라우저에서 www.naver.com 을 검색하게 되면 브라우저에서 바로 naver홈페이지로 접속하는게 아니다! - DNS에 접속하여 NAVER.COM 가 있는지 확인을 하..
Socket 통신이란? - socket 이란 데이터를 주고 받는 양끝단에 위치하여 InputStream , OutputStream 을 통해 데이터 교환을 하는 통신이다 - 프로토콜이 없어 통신 속도가 빠르다. - 개발자를 준비한다면 반드시 Socket 통신과 HTTP 통신은 숙지하고 입사해야 한다. 내부원리 - Server쪽에서는 ServerSocket 이 리스너를 통해 연결이 들어오나 안들어오나 while을 돌면서 항상 확인한다. - Client쪽에서는 ServerSocket 리스너에 요청을 한다. - ServerSocket은 요청이 오면 새로운 Socket을 생성하여 요청한 Client와 Socket을 연결해주고 기존에 요청했던 연결을 끊고 다시 while을 돌며 요청을 기다린다. - Client는 ..
비동기적 실행,동기적 실행이란 ? - 비동기적 실행은 일의 순서가 없다는 뜻이다. 이때 스레드를 이용해 2가지일 을 동시에 처리할 수 있다. 하지만 코드가 복잡해진다. - 동기적 실행은 일의 순서가 있다는 뜻으로 가장 좋은 퍼포먼스를 낼 수 있다. 소스코드 설명 public class ThEx03 { public static void main(String[] args) { Thread t1 = new Thread(new RealThread()); t1.start(); //start()메서드는 os에 run메서드 실행하게 새로운 스레드 생성을 요청 for(int i=0;i
https://jadev97.tistory.com/8 Buffer를 이용한 통신 1) InputStreamReader - inputStreamReader 는 가장 기본적인 Byte통신이다. - 데이터를 여러개 보내도 1Byte씩 끊어서 읽는다는 특징이 있다. - 여러 문자를 통신하려면 배열을 이용해야 한다. 하지만 이는 정 jadev97.tistory.com 1) BufferedReader를 이용하여 데이터를 읽기만 할 것!( Buffer를 모른다면 위 링크로) - URL 클래스를 이용해 네이버 URL 을 저장해주고 - HttpsURLConnection 클래스를 이용해 http 프로토콜 사용 - BufferedReader 를 이용하여 데이터를 읽어 올 것이다. - 스트링타입의 temp를 설정하고 read..
1) Oracle DB를 다운받은 폴더를 찾는다! - Oracle DB가 다운이 안돼있으면 밑의 링크로 가서 다운! https://jadev97.tistory.com/3 Oracle DB 초기설정하기 1) Oracle 다운받기 google에 'Oracle Download' 를 검색한다. 로그인or회원가입을 한다. 스크롤을 내려서 Database Express Edition 클릭 OS에 맞는걸 설치 압축을 푼 후 ' setup.exe ' 클릭 다음을 계속 눌.. jadev97.tistory.com - 다운받은 폴더로 들어간 후 dbhomeXE -> jdbc -> lib 이동후 - Elipse 워크스페이스에 lib폴더로 복사! 2) BuildPath 설정 3) 소스코드 구현( connection 연결 ) -..