목록분류 전체보기 (231)
코딩 기록들

HTTP (Hyper Text Transfer Protocol ) - 규칙이 나와있는것이고, 이것대로 구현을 해야 함 - RFC 2016에서 규정된 웹에서 데이터를 주고받는 프로토콜 - 실제로는 HTML, XML, JSON, Image, Voice, Video, PDF 등 다양한 컴퓨터에서 다룰수 있는것은 모두 전송할 수 있음 - TCP를 기반으로 한 REST의 특징을 모두 구현하고있는 웹기반 프로토콜 특징 : 메시지를 주고(Client), (반드시)받는(Response) 형태의 통신방법 [ 클라이언트 서버 ] -> 클라이언트는 서버에 요청을 하고, 일정시간 응답이 오지 않거나 커넥션이 맺어지지 않으면 취소함 / 응답이오면 응답메시지를 수신하고 해석 & 데이터표시및 처리를 함 HTTP 요청을 특정하는 메..
URI (Uniform Resource Identifier) - 인터넷에서 특정자원을 나타내는 주소값 - 해당 값은 유일함 (응답은 달라질 수 있음 - ) - URI의 리소스정보는 변경될 수 있음 URL (Uniform Resoruce Locator) -> URI의 하위개념 - 인터넷상에서의 자원, 특정 파일등이 어디에 위치하는지 식별하는 주소 - URL의 리소스정보는 변경될수 없음 (딱, 정확하게 지정된 위치이기 때문) URI 설계원칙 (RFC - 3986) -> 못지킨다고해서 잘못되는건 아님 슬래시 구분자 / 는 계층 관계를 나타내는데 사용 URI 마지막 문자로 / 는(x) 포함하지 않음 하이픈 - 은 URI가독성을 높이는데 사용함 ex) webmaster -> web-master 밑줄 _ 은 사용하..
REST : Representational State Transfer (자원의 상태 전달) - 네트워크 아키텍처 아래의 6가지의 아키텍처 - 를 잘 지켰는가를 가지고 REST Ful하다고 표현함 1. Client, Server - 클라이언트와 서버는 서로 독립적으로 분리되어있어야 함 2. Stateless - 요청에 대해 클라이언트의 상태를 서버에 저장하지 않음 3. Cache - 캐시기능이 있어야함 : 클라이언트는 서버의 응답을 임시저장(Cache) 할 수 있어야 함 - 클라이언트가 캐시를 통해서 응답을 재사용할수 있어야함 -> 이를통해 서버의 부하를 낮춤 (요즘엔 서버쪽에서도 캐시기능을 활용해서 중복된데이터의 경우 캐시된 데이터를 내려주기도 함) 4. 계층화(Layered System) - 서버와 클..
웹의 용도 1) Html로 구성된 웹사이트 - http프로토콜을 사용해 html문서받아와서 user interface에 해당되는 브라우저를 통해 보게 됨 ex) googl, naver... 2) API를 사용하는 웹서비스 ex) kakao, google, naver의 Open API 3) 유저인터페이스 ex) chrome, safari, smart watch, IP TV 웹의 기본 3가지 요소 1. URI - Uniform Resource Identifier (주소로 접근) - 리소스 식별자 : 특정 사이트&쇼핑목록, 리소스 등 모든 정보에 접근할 수 있는 정보 2. HTTP - Hypertext Transfer Protocol (주소로 접근 한 후 어떠한 프로토콜을 통해서 주고받을것인지) - 어플리케이..
옵저버(Observer) 패턴 - 관찰자패턴 - 스윙, 자바의GUI프로그래밍, 안드로이드 프로그래밍 시 이벤트리스너가 예시(이벤트리스너를 통해 전달) - 변화가 일어났을때관찰(관찰에 변화가생기면) 미리 등록된 다른클래스에 통보해주는 패턴을 구현한것 public class Main { public static void main(String[] args) { Button button = new Button("버튼"); //익명으로 전달받음 button.addListener(new IButtonListener() { public void clickEvent(String event){ System.out.println(event); } }); button.click('메시지 전달 : click 1'); butt..

Proxy pattern - 대리인 이라는 뜻 = 뭔가를 대신해서 처리하는 것 - proxy class를 통해서 대신 전달하는 형태로 설계됨, 실제client는 proxy로부터 결과를 받는다 - Cache의 기능으로도 활용가능 - SOLID중 개방폐쇄원칙과 의존역전원칙을 따름 - 브라우저, 이미 받아둔 결과를 캐시를 사용해 같은결과 요청시 내려주는 역할을 함 public interface IBrowser { //html 보여주는 기능 Html show(); //html로 리턴 } public class Html { private String url; //기본 생성자에서 url받아서 html로딩 public Html(String url){ this.url = url; } } public class Brow..

Singleton pattern 어떤 클래스(객체)가 유일하게 1개만 존재해야 할 때 사용 서로 자원을 공유할 때 주로 사용 실물세계에서는 여러개의 pc가 하나의 '프린터기'에 연결된것이 해당됨 / 실제프로그래밍에서는 TCP Socket통신에서 서버와 연결된 하나의 connect 객체 디폴트 생성자 : private get instance()통해 생성되어있는 객체 가지고오거나, 없다면 새로 생성 package com.company.design.singleton; public class SocketClient { //싱글톤 = 자기자신을 객체로 가지고 있어야함 private static SocketClient socketClient = null; // 싱글톤 = 기본생성자를 private으로 막아야됨 pr..
디자인패턴이란? 자주 사용하는 설계패턴을 정형화해서 유형별로 최적의 방법으로 개발할수있도록 정해둔 설계 알고리즘과 유사함. 명확하게 정답이있는 형태는 아니며, 프로젝트 상황에맞춰 적용가능 Gof 디자인패턴 (Gang of Four) 객체지향 개념에 따른 설계중 재사용할경우 유용한 설계를 미리 디자인패턴으로 정리해 둔 것 총 23개로 구성됨 디자인패턴 장점 개발자간의 원활한 소통이 가능 소프트웨어 구조파악 용이 재사용을 통한 개발시간 단축 (enterprise 확장시)설계변경 요청에 대한 유연한 대처 가능 디자인패턴 단점 객체지향 설계및 구현 초기투자(인터페이스및 구조의 설계및 코딩) 비용 부담 23개의 디자인패턴 분류 1. 생성 패턴 - 객체를 생성하는것과 관련된 패턴 - 객체의 생성과 변경이 전체시스템..