Development

Study/네트워크

[모든 개발자를 위한 HTTP 웹 지식] HTTP 기본

HTTP란? HyperText Transfer Protocol의 약자로 말 그대로 HyperText를 전송하기 위한 프로토콜 전송 가능한 데이터 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 위와 같이 거의 모든 형태의 데이터 전송이 가능합니다. 서버간의 데이터를 주고받을 때 대부분 HTTP를 사용합니다. HTTP의 특징 클라이언트 서버 구조 무상태 프로토콜(스테이스리스), 비연결성 HTTP 메시지 단순함, 확장 가능 클라이언트 서버 구조(Request Response 구조) 1. 클라이언트는 서버에 요청을 보내고, 응답을 대기합니다. 2. 서버는 요청에 대한 결과를 만들어서 응답을 클라이언트에 전송합니다. 무상태 프로토콜(Stateless) 서버가 클라이언트의 상태를 ..

Languege/Java & Spring

[김영한 스프링] 스프링 컨테이너와 빈

스프링 컨테이너 생성 과정 1.스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext는 스프링 컨테이너라 합니다. 이것은 인터페이스이기 때문에 xml을 기반으로 만들 수도 있고 애노테이션 기반의 자바 설정 클래스로 만들 수 있습니다. AppConfig라는 java 파일을 기반으로 애노테이션 기반의 자바 설정 클래스로 컨테이너를 만들었습니다. 스프링 컨테이너를 부를 때 BeanFactory, ApplicationContext로 구분해서 이야기합니다. 2.스프링 빈 등록 이후 new AnnotationConfigApplicationCon..

Study/네트워크

[모든 개발자를 위한 HTTP 웹 지식] URI와 웹 브라우저 요청 흐름

URI(Uniform Resource Identifier)란? Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원을 뜻하며, URI로 식별할 수 있는 모든 것을 말합니다.(제한이 없음) Identifier : 다른 항목과 비교할 수 있는 정보 URI, URL, URN? URI는 로케이터(Locator), 이름(Name) 또는 둘 다 추가로 분류될 수 있습니다. 로케이터와 이름은 무엇일까요? URI는 하나의 큰 개념이 있습니다. 바로 리소스를 식별하는 것입니다. 마치 주민등록번호처럼 식별하는 방법입니다. 그 식별 방법에 따라서 URL와 URN으로 나눌 수 있습니다. URL(Uniform Resource Locator)은 리소스의 위치를 통해 자원을 식별한다. URN(Uniform Re..

Languege/Java & Spring

[김영한 스프링] 스프링 핵심 원리 이해

스프링 핵심 원리 이해에서는 예제를 만들고 객체 지향 원리를 적용하는 방식으로 이루어졌습니다. 첫번째로 private final MemberRepository memberRepository = new MemoryMemberRepository(); 라는 순수한 자바코드를 작성하였고 이에 대한 코드는 인터페이스 뿐만 아니라 구현 객체도 의존하여 OCP, DIP 위반의 문제가 발생합니다. 왜냐하면 변경에는 닫혀있어야 하는 OCP와 구체화에 의존하면 안되는 DIP를 위반하기 때문입니다. 이를 해결하기 위해 private final MemberRepository memberRepository = new MemberRepository(); 라는 인터페이스만을 의존하는 코드를 작성하였고 OCP와 DIP는 해결한 것 ..

Study/네트워크

[모든 개발자를 위한 HTTP 웹 지식] IP, TCP, UDP, PORT, DNS

IP란 인터넷 프로토콜 역할 지정한 IP 주소에 데이터를 전달 패킷이라는 통신 단위로 데이터를 전달 IP 패킷 출발지 IP, 목적지 IP, 기타 등과 메시지를 넣고 전송한다. 한계 1.비연결성 - 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다. 2.비신뢰성 - 중간에 패킷이 사라지거나 순서대로 오지 않을 경우가 있다. 3.프로그램 구분 - 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일때 구분이 힘든 경우가 있다. (음악듣기와 유튜브를 동시에 구분하기 힘들다) 이걸 해결하려면 ? => TCP와 UDP TCP/IP 패킷정보 출발지 PORT, 도착지 PORT, 전송 제어, 순서, 검증 정보 등이 포함됩니다. IP 패킷안에 TCP 세그먼트가 존재하며 전송 제어, 순서 등의 정..

Algorithm

[백준] 1920번 수 찾기 파이썬 문제 풀이

문제 고민 처음 이 문제를 봤을때는 간단하게 생각하고 쉽게 풀었습니다. 하지만 다른 알고리즘들이 그렇듯 시간초과 문제가 발생했었고, 한참 고민하다 이진탐색 알고리즘을 알게 되었습니다. 그래서 이진탐색 알고리즘에 대해서 공부를 하게 됐습니다. 이진탐색 알고리즘 해당 배열이 있을때 시작, 중간, 끝점을 정해두고 찾고자 하는값이 중간점보다 큰지 작은지 비교한다. 만약에 중간점보다 값이 작다면(2 혹은 3) 아래와 같은 그림으로 끝점은 중간점보다 1칸 작은값으로 이동하게 되고 시작점과 비교해 중간점을 구합니다. 만약 이때 중간점이 구해진다면 일반적인 순차 탐색이라면 최대 8번이 걸릴 수 있었던 과정을 2번의 탐색으로 구할 수 있게 되는 알고리즘입니다. 정리 시작점과 끝점을 구해주고 중간점을 구한다. Target..

Languege/Java & Spring

[JAVA] 자바 Static

Static은 고정된이라는 의미를 가지고 있다. Static 키워드를 사용한다면 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 말한다. 즉, 수명의 주기가 프로그램과 같아 진다는 것이다. 일반적으로 Class는 Static 영역에 생성되고, new 연산을 통해 생성한 Instance는 Heap 영역에 생성된다. Heap영역의 메모리는 Garbege Collector를 통해서 계속해서 관리된다. 하지만 Static 키워드를 통해 생성이 된다면 Static 영역에 할당된 메모리는 모든 객체가 공유하는 특성을 지니며, 이는 Garbege Collecor를 통해서 관리되는 영역이 아니기 때문에 Static을 자주 사용한다면 시스템 성능이 떨어질 수 있다. Static 변수의 특징 - 즉시 호출 가능..

Algorithm

[백준] 10845번 큐 파이썬 문제풀이

from collections import deque import sys que = deque() def push(X): que.append(X) def pop(): if len(que) == 0: return -1 return que.popleft() def size(): return len(que) def empty(): if len(que) == 0: return 1 return 0 def front(): if len(que) == 0: return -1 return que[0] def back(): if len(que) == 0: return -1 return que[-1] result = [] N = int(sys.stdin.readline().rstrip()) for _ in range(N):..

mntdev
'분류 전체보기' 카테고리의 글 목록 (13 Page)