💎TCP와 UDP TCP 특징 연결 지향 방식 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다. 흐름 제어 및 혼잡 제어 (∵ 속도가 느린 이유) 높은 신뢰성을 보장 UDP보다 속도가 느리다 전이중(Ful
HTTP는 서버/클라이언트 모델을 따라 데이터를 주고 받고자 하는 '프로토콜'이다.HTTP는 인터넷에서 '하이퍼텍스트'를 교환하고자 하는 목적이며서버가 80번 포트에서 요청을 기다리고 있고 클라이언트가 80번 포트로 요청을 보낸다.비밀번호 or 주민등록번호 등을 주고
네트워크 OSI 7계층 네트워크 통신이 일어난 과정을 7단계로 나눈 것을 의미 순서 : 송신 7계층 > 1계층 수신 1계층 > 7계층 1) 물리계층 ex 리피터, 케이블, 허브 등 >* 통신단위 : 비트 0,1 bit 단지 데이터 전기적인 신호로
=> 애초에 API URI를 짤 때 '리소스'를 기준으로 두고 고민해야 한다. 동사에 초점을 잡는게 아니라 '주어'인 대상(리소스)을 중심으로 생각하자.리소스명사 : 회원 행위동사 : 조회,등록, 변경, 삭제ex) 회원 등록, 수정, 삭제, 조회 => '회원' 리소스
네트워크 🌈브라우저가 어떻게 동작하는가? url을 입력 브라우저가 URL에 적힌 값을 파싱해서 HTTP Request Message를 만들고, OS에 전송 요청을 합니다. > 이 때, Domain으로 요청을 보낼 수 없기 때문에 DNS Lookup을 수행 DNS
프로세스 : 프로그램을 메모리 상에서 진행 중인 작업스레드 : 프로세스 안에서 실행되는 여러 흐름 단위기본적으로 프로세스마다 최소 1개의 스.레.드.를 소유 (메인 스레드 포함)codeData : 전역변수, 정적변수, 배열 등Heap : 동적 할당 시 사용Stack
물리적 메모리 크기의 한계를 극복하기 위해 나온 기술이다. 프로세스를 실행할 때 실행에 필요한 일부만 메모리에 로드하고 나머지는 디스크에 두는 것이다.결과적으로 메모리에 작은 양의 주소 공간만 있으면 충분히 프로세스를 수행할 수 있고, 그에 따라 더 많은 프로그램을 동
데이터베이스를 설명하기 앞서 가장 기본적인 RDBMS 구조를 보고 시작해보고자 합니다 관계형 데이터베이스(RDBMS) 구조 튜플 릴레이션을 구성하는 각각의 행(row) 속성들의 모임으로 구성되어 있다. 튜플의 수 = 카디널리티 Attribute(속성) 릴레이션을
데이터베이스를 설명하기 앞서 가장 기본적인 RDBMS 구조를 보고 시작해보고자 합니다사용자의 요청을 해석하여 데이터베이스에 저장된 정보를 관리할 수 있게 도와주는 소프트웨어ex) MySQL, Oracle DB, Maraia DB 등엑셀과 유사한 형식으로 2차원 테이블로
데이터베이스를 설명하기 앞서 가장 기본적인 RDBMS 구조를 보고 시작해보고자 합니다사용자의 요청을 해석하여 데이터베이스에 저장된 정보를 관리할 수 있게 도와주는 소프트웨어ex) MySQL, Oracle DB, Maraia DB 등DB 내 저장된 데이터의 주소라고 생각
사용자의 요청을 해석하여 데이터베이스에 저장된 정보를 관리할 수 있게 도와주는 소프트웨어ex) MySQL, Oracle DB, Maraia DB 등=> "하나의 논리적 작업 단위를 구성하는 일련의 연산들의 집합"=> 즉, 이 트랜잭션을 사용하면 <span styl
=> "테이블로서 저장되거나, 그 자체로 이용할 수 있는 결과 셋을 만들어 낸다."테이블끼리는 관계를 맺는다 => 저장 공간의 효율성과 확장성이 향상성을 위해각 테이블에 저장된 데이터를 효과적으로 검색하기 위해 => 관계있는 데이터가 여러 테이블로 나뉘어 저장되므
데이터를 처리하기 위해 배열을 사용했었지만 크기가 고정되어있고 삽입 및 삭제 시간이 오래 걸린다는 불편한 점들이 많았습니다.=> 따라서 이를 보완하기 위해 자바에서 동적 배열 개념인 컬렉션 프레임워크를 제공하였는데=> 종류는 대표적으로 List, Map, Set이 있습
자료구조 정리 ... 1. Array & LinkedList 배열 (Array) 정적 자료구조 -> 입력된 데이터들이 메모리 공간에서 연속적으로 저장되어 있는 자료구조 메모리 상에서 연속적으로 저장되어 있는 특징을 가지기에, index를 통한 접근이 용이
...Hash Function, HashTable에 대해서 설명해주세요.연관배열 구조를 이용해 key에 결과값(value)를 저장하는 자료구조.키 1개와 값 1개가 1:1로 연관되어 있는 자료구조=> 이로인해 키(key)를 이용하여 값(value)을 도출할 수 있다.&
...Hash Function, HashTable에 대해서 설명해주세요.연관배열 구조를 이용해 key에 결과값(value)를 저장하는 자료구조.키 1개와 값 1개가 1:1로 연관되어 있는 자료구조=> 이로인해 키(key)를 이용하여 값(value)을 도출할 수 있다.&
...2번째 원소(key)부터 시작하여 그 앞(왼쪽)의 원소들과 비교하여 삽입할 위치를 지정한 후, 원소를 뒤로 옮기고 지정된 자리에 자료를 삽입하여 정렬하는 알고리즘알고리즘이 단순하여 구현이 쉽다정렬하고자 하는 배열 안에서 교환하는 방식으로 다른 메모리 공간을 필요로
<span style='background-color:\* 연관되어 있는 변수와 메서드들의 집합<span style='background-color:‘클래스의 인스턴스'모든 인스턴스를 대표하는 포괄적 의미를 띈다.oop의 관점에서 클래스의 타입으로 선언되었을
처음엔 '순차적 프로그래밍'을 썼다,, 그러나 순차적 프로그래밍은 순서대로 동작을 추가하며 프로그램을 완성하는 방식으로... 간단한 프로그램일 때는 괜찮았겠지만...조금이라도 프로그램의 규모가 커지게 되면 코드의 동작이 순서대로에서 위로 갔다가 아래로 갔다가 동작이 직
1. 객체지향이 나오게 된 배경 등장배경_ feat( 순차적, 절차적 프로그래밍..) 처음엔 '순차적 프로그래밍'을 썼다,, 그러나 순차적 프로그래밍은 순서대로 동작을 추가하며 프로그램을 완성하는 방식으로... 간단한 프로그램일 때는 괜찮았겠지만... 조금이라도
먼저 이 글은 정말정말 많은 도움이 된 Inpa Dev님의 글이 출처입니다. 추상 메소드를 가지고 있어야 한다.인스턴스화 할 수 없다 (new 생성자 사용 X)인터페이스 혹은 추상 클래스를 상속받아 구현한 구현체의 인스턴스를 사용해야 한다.'인터페이스'와 '추상클래스
static 이란 정적이다 라는 의미를 갖고 있습니다. 자바에서는 클래스에 고정된 멤버입니다. (그래서 클래스 멤버라고도 부릅니다.)static 멤버들은 클래스에 고정된 멤버입니다. 그래서 <span style="background-color:=> (클래스 로딩이
자바의 원시타입들은 무엇이 있으며 각각 몇 바이트를 차지하나요?원시타입과 참조타입의 차이에 대해 설명해주세요.접근 제어자의 종류와 이에 대해 설명해주세요 <span style="background-color: int a = 10; 와 같이 코드를 작성했다면 정수
동일성은 동일하다는 뜻으로 두 개의 객체가 완전히 같은 경우를 의미한다.=> 즉, 두 객체가 사실상 하나의 객체로 봐도 무방하며, 주소 값이 같기 때문에 두 변수가 같은 객체를 가리키게 된다.동등성은 동등하다는 뜻으로 두 개의 객체가 같은 정보를 갖고 있는 경우를 의미
메모리 관리 기법 중 하나로, 동적으로 할당했던 메모리 영역 중 필요 없게 된 영역을 해제하는 기능이다. 여기서 동적으로 할당했던 메모리 영역은 프로그램 런타임에 사용되는 Heap 영역 메모리를 뜻하고, 필요 없게 된 영역은 어떤 변수도 가리키지 않게 된 영역을 뜻한다
자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것입니
자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것입니
예외란 에러가 어떻게 다른지도 생각해보자. 예외(Exception)란 입력 값에 대한 처리가 불가능하거나, 프로그램 실행 중에 참조된 값이 잘못된 경우 등 정상적인 프로그램의 흐름을 어긋나는 것을 말한다. 그리고 자바에서 예외는 <span style='backgr
try-catch-finally로 자원을 반납하는 경우를 먼저 살펴보도록 하자.두 가지를 모두 보고 비교함으로써 왜 try-with-resources를 사용해야 하는지 이해가 보다 더 잘 갈 것이다.Java 7 이전까지는....사용 후에 반납해주어야 하는 자원들은 Cl
객체의 의존 관계에서 강한 결합이란, 어떠한 객체가 다른 객체에 강한 의존성을 가지고 있음을 뜻한다ex) A클래스가 B클래스의 참조가 필요함\-> <span style='background-color:Person 클래스의 멤버변수 타입으로 Chicken 클래스가
들어가기 앞서 Java에서 말하는 객체 직렬화는 이처럼 <span style='background-color:반대로 '역직렬화'는 직렬화를 통해 변환된 바이트 형태를 다시 원상태인 객체로 변환 시키는 기술을 의미한다.직렬화를 하게 되면 각 주소 값이 가지는 데이
실제로 가지고 있는 데이터가 RAM에서 실시간으로 변경이 되었다고 했을 때, 언제 시시각각으로 CPU Cache Memory가 아닌 RAM에서 데이터를 곧바로 읽어 들여서 CPU Cache Memory를 업데이트 할련지 시간차도 보장할 수 없다...곧, 동시성 프로그래
Mutable은 객체의 수정을 허용하나, Immutable인 경우 객체의 수정을 허용하지 ❌수정이 필요할 경우 Mutable 객체는 기존의 객체에 수정사항을 곧바로 반영한다.그에 비해 Immutable 객체의 경우 기존의 객체는 그대로 냅두고 수정사항을 반영한 새로운
각각 다르게 정의하고 있지만 큰 부류로 ¹ String str = ""; 와 같이 <span style='background-color:² 0도 0이라는 값이 할당된 상태이기 때문에 <span style='background-color:특별한 값이 없음을 나
Java8에서는 Lambda식 , Stream API , Optional , 날짜 시간 API, StringJoiner 등이 추가되었다.주목할만한 특징은 크게 이렇게 있다. 람다 표현식(lambda expression) : 함수형 프로그래밍스트림 API(stream A
정의어플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(static) 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴레지스트리 같은 설정 파일에서 객체가 여러개 생성된다면 설정 값이 변경될 위험이 생길 수 있다.이때 인스턴스가 1개만 생성되는 특징
스프링 Ioc 컨테이너가 관리하는 자바 객체를 뜻하며 필요할 때마다 IoC 컨테이너에서 가져와서 사용한다.IoC 컨테이너에 의해 생명주기가 관리되는 객체를 의미한다.사용할 때는 ¹어노테이션인 @Bean을 사용하거나 ² xml 설정을 통해 일반 객체를 Bean으로 등록이
DI의 장점 의존성이 줄어든다. (변경에 덜 취약해진다.) 모의 객체를 주입할 수 있기 때문에 단위 테스트가 쉬워진다. 가독성이 높아진다. 재사용성이 높아진다.
오늘 우리는 이 중에서 Dispatcher Servlet에 대해서 좀 더 배워보자.디스패처 서블릿의 dispatch는 "보내다"라는 뜻을 가진다. 곧 디스패처 서블릿은 HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러
이전에 서블릿 필터와 스프링 인터셉터에의 차이에 대해 따로 정리는 여기에 있다!질문에 대비해 차이 및 추가적으로 요약 정리를 더 해보자면스프링 MVC 2편 - 로그인 처리2 - 필터, 인터셉터에서 관련하여 글을 작성하였습니다.필터와 인터셉터는 관리되는 영역이 다르다.
출처출처2에서 관련하여 글을 작성하였습니다.Spring 애플리케이션 시작 중 / 후에 로직을 실행하는 것은 일반적인 시나리오이지만 여러 문제를 일으키는 시나리오다.IoC의 이점을 얻으려면 당연히 컨테이너로가는 애플리케이션의 흐름에 대한 부분적인 제어를 포기해야한다. 이
Spring Web MVC에서 요청 마다 Thread가 생성되어 Controller를 통해 요청을 수행할텐데, 어떻게 1개의 Controller만 생성 될 수 있을까요?이 글을 참고하여 작성하였습니다.생성한 Controller 클래스에 대한 정보가 JVM 메모리 영역
POJO란 무엇인가요? Spring Framework에서 POJO는 무엇이 될 수 있을까요?이 글을 참고하여 작성하였습니다.이 글을 참고하여 작성하였습니다.진정한 POJO란 토비의 스프링에서는 진정한 POJO를 아래와 같이 정의했다고 합니다.그럼 특정 기술규약과 환경
이 글을 통해 작성하였습니다.복잡한 Object들을 단계별로 구축할 수 있는 생성 디자인 패턴이를 이용하면 동일한 구성코드를 사용해 다양한 타입과 표현을 제공한다.=> 즉 생성자를 가독성 있게 만들어주는 도구라고 생각하자.라는 생각을 할 수도 있을텐데 Setter를 쓰
이 글을 통해 작성하였습니다.GoF의 디자인 패턴(개정판) / 에릭 감마, 리처드 헬름, 랄프 존슨, 존 블라시디스 공저 / 김정아 역디자인 패턴 중 목적의 '생성패턴'에 속한다.객체를 생성하기 위해 인터페이스를 만듭니다. 어떤 클래스의 인스턴스를 만들지를 서브클래스에
이 글을 통해 작성하였습니다.디자인 패턴 중 목적의 '구조패턴'에 속한다.퍼사드 패턴(Facade Pattern)은 구조 패턴의 한 종류로, 서브시스템들의 공통적인 기능을 정의하는 단순화된 상위 수준의 인터페이스를 정의하는 패턴이다. Facade : 사용자의 요청을 서
CORS는 Cross-Origin Resource Sharing 의 줄임말로, 교차 출처 리소스 공유를 의미하며, 교차 출차는 ‘다른 출처’라고 생각하면 이해하기 쉽다. => 즉, 다른 출처 간의 자원을 공유하는 정책을 말한다.이해가 잘 안가니 좀 더 살펴보자이런 식으