개발
-
HTTP개발 2021. 1. 5. 22:00
HTTP - HyperText Transfer Protocol 요즘은 HTTP 메세지에 모든 것을 전송한다. HTML, TEXT, Image, Sound, Video, File, JSON, XML(API) 등 거의 모든 형태의 데이터 전송이 가능하다. 서버간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다. TCP : HTTP/1.1 , HTTP/2 UDP : HTTP/3 현재 주로 HTTP/1.1을 사용한다고 하나, HTTP/2, HTTP/3의 사용도 점차 증가하는 추세 HTTP 특징 클라이언트 - 서버 구조 Request - Response 구조로 클라이언트는 서버에 요청을 보내고 응답을 대기한다(무한정 대기할 수도 있음) 비즈니스 로직, 데이터를 서버에 UI/UX 요소를 클라이언트로 구분지어 ..
-
URI와 웹 브라우저 요청 흐름개발 2021. 1. 5. 02:47
URI (Uniform Resource Identifier) 자원을 식별하는 방법. Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원, URI로 식별할 수 있는 모든 것(제한없다) Identifier : 다른 항목과 구분하는데 필요한 정보 URI? URL? URN? URI는 로케이터(locator) - URL, 이름(name) - URN 또는 둘다 추가로 분류 될 수 있다. URL ( Uniform Resource Locator ) : 리소스가 있는 위치를 지정 scheme://[userinfo@]host[:port][/path][?query][#fragment] ex) foo://example.com:8042/over/there?name=ferret#nose -> https://..
-
쿠키&세션개발 2020. 12. 23. 22:02
쿠키(Cookie) 사용자가 사이트를 방문했을 때, 사용자의 컴퓨터에 저장되는 정보 쿠키의 구성요소 이름 - 각 쿠키의 값을 식별하기 위한 키 값 - 특정 이름으로 쿠키에 저장된 값 유효시간 - 쿠키의 유지 시간 도메인 - 쿠키를 전송할 도메인 경로 - 쿠키를 전송할 요청경로 쿠키의 특징 쿠키는 HTTP 헤더 정보에 포함되어 전달된다. HTTP는 비연결 지향으로 상태 정보를 저장 X 쿠키는 클라이언트의 웹 브라우저가 지정하는 메모리나 하드디스크에 저장된다. 즉 서버의 자원을 사용하지 않는다. 클라이언트도 모르게 접속되는 사이트에 의해 설정될 수 있기 때문에 도메인당 20개, 쿠키당 4kb 제한을 두고 있다. 쿠키는 저장 시 expires 속성을 정의하여 무효화 시키면 삭제될 날짜를 저장할 수 있다. 사용..
-
자바의 메모리관리, 가비지 컬렉션개발 2020. 12. 13. 23:12
자바의 메모리 공간은 크게 Static , Stack, Heap 영역으로 구성된다. Static 필드 부분에서 선언된 변수(전역변수)와 정적 멤버변수(static이 붙은 자료형)은 Static 영역에 저장한다. Static 영역에 저장된 데이터는 프로그램의 시작부터 종료가 될 때 까지 메모리에 남아있게 된다. 즉 프로그램 종료 전까지 어느 영역에서든 Static영역에 저장된 값을 사용할 수 있다는 뜻이다. 하지만 남용할 경우 메모리 공간이 부족해진다. Stack Stack 메모리 영역에는 우리가 평상시에 작성하던 메소드 내에서 정의하는 기본 자료형(원시 타입)에 해당되는 지역변수의 데이터의 값이 저장되는 공간이 Stack영역이다. 해당 메소드가 호출될 때 메모리에 할당되고 종료되면 메모리가 해제된다. H..
-
스프링과 스프링 부트의 차이개발 2020. 12. 8. 12:04
스프링 이란? 자바 생태계에서 가장 대중적인 응용프로그램 개발 프레임 워크이다. 의존성 주입(DI), 제어의 역전(IOC)은 스프링의 가장 중요한 특징으로 결합도를 낮추는 방식으로 애플리케이션을 개발할 수 있으며, 단위테스트가 용이하기 때문에 퀄리티 높은 프로그램을 개발할 수 있다. @Component : 스프링의 BeanFactory라는 팩토리 패턴의 구현체에서 bean이라는 스프링프레임워크가 관리하는 객체가 있는데 해당 클래스를 그러한 bean 객체로 두어 스프링 관리하에 두겠다는 어노테이션. @Autowired : 스프링 프레임워크에서 관리하는 Bean 객체와 같은 타입의 객체를 찾아서 자동으로 주입해주는 것. 해당 객체를 Bean으로 등록하지 않으면 주입해줄 수 없다. 관점 지향 프로그래밍 (AO..
-
MSA?개발 2020. 12. 4. 23:35
MSA를 알기전에 기존의 체계에 대해 먼저 알아 보자. Monolithic Architecture? 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있는 형태이다. 웹 개발을 예로 들면 웹 프로그램을 개발하기 위해 모듈별로 개발을 하고, 개발이 완료된 웹 어플리케이션을 하나의 결과물로 패키징하여 배포되는 형태를 말한다.(SSAFY에서 진행한 프로젝트 들?) 이런 어플리케이션을 모놀리식 어플리케이션이라 하며, 웹의 경우 WAR파일로 빌드되어 WAS에 배포하는 형태를 말한다. 주로 소규모 프로젝트에서 사용된다. 하지만 일정 규모 이상의 서비스, 혹은 수백명 이상의 개발자가 투입되는 프로젝트에서 Monolithic Architecture는 한계를 보인다. MSA ? Micro Service Arcitect..
-
Rest API ?개발 2020. 12. 3. 21:49
API ? Application Programming Interface의 약자. 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. REST? Represetational State Transfer의 약자. 인터넷 상 서로 다른 시스템 간의 상호 운용성을 제공하는 방법중 한가지로 시스템 각각의 독립적인 진화를 보장하기 위한 방법. HTTP 통신에서 URI를 통해 자원을 명시하고 HTTP METHOD(GET, POST, DELETE, PUT)을 사용해 해당 자원에 대한 Method Operation을 적용하는 것을 의미한다. 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고, 그 리소스에 대한 행위를 HTTP Method로 정..
-
이것저것 공부한거 (Proxy, Transaction)개발 2020. 11. 30. 16:16
Proxy? 대리, 혹은 중계의 의미를 가지는 Agent로 봐도 무방, Proxy Server는 Client의 요청을 받아 중계하는 서버를 뜻한다. Client Server Proxy Server Web Server client가 요청을 보내면 proxy server에서 web server에 접근하여 요청을 보내고 응답을 처리한다. 이후 proxy server가 응답을 client에 전달한다. Proxy Server 특징 익명성으로 보안의 목적으로 사용할 수 있다. 캐시를 사용하여 속도를 개선할 수 있다. 차단되있는 사이트들을 우회적으로 접속할 수 있다. 원치 않는 사이트를 차단할 수 있다. Proxy Server 종류 Forward Proxy Server 일반적인 프록시 서버, Client와 Web S..