전체 글

전체 글

    TCP / UDP

    TCP와 UDP는 전송 계층에서 사용하는 데이터 전송 프로토콜이다. 전송계층은 송,수신자를 연결하는 통신 서비스를 제공하는 계층으로 데이터의 전달을 담당한다. TCP (Transmission Control Protocol) 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 연결 지향 프로토콜 IP가 데이터의 배달을 처리하고 TCP가 패킷을 추적, 관리한다. TCP 특징 - 연결 지향 방식 (패킷을 전송하기 위한 논리적 경로를 배정함) - 신뢰성 보장 (패킷 손실, 중복, 순서 바뀜 등이 없도록 보장) - 흐름 제어, 혼잡 제어 - 3-way handshaking으로 연결, 4-way handshaking으로 연결 해제 연결형 서비스, handshaking 방식, 흐름 및 혼잡 제어 ..

    [SQL] 프로시저 VS 함수

    프로시저 일련의 쿼리를 하나의 함수처럼 일괄 처리 또는 실행하기 위한 쿼리의 집합 CALL 프로시저명() EXECUTE 프로시저명() 특징 1. 하나의 요청으로 여러 개의 SQL문 실행 가능 2. 서버에서 실행되기 때문에 속도가 빠름 3. 리턴값이 있을수도 없을수도 있음 (IN 또는 OUT) → 유연함 4. 여러 개의 리턴값 가능 (OUT 여러 개) 5. 재사용성이 좋지 않다는 단점 함수 프로시저의 각 프로세스를 수행하기 위해 필요한 기능들 SELECT 함수명() FROM DUAL; 특징 1. 리턴값 필수 2. 클라이언트에서 실행되기 때문에 프로시저보다는 느림 프로시저와 함수의 차이 프로시저는 로직을 기술하여 업무 처리를 직접 하는 용도로 많이 사용된다. 함수는 로직을 도와주는 목적으로 사용된다. 예를 ..

    JSON

    JSON 이란? JavaScript Object Notation 데이터를 전송하거나 저장할 때 사용되는 경량의 데이터 교환 형식으로 Javascript에서 객체를 만들 때 사용하는 표현식을 의미한다. 텍스트 형식의 데이터 포맷으로 단순히 데이터를 표시하는 표현 방법이며 다양한 프로그래밍 언어에서 사용할 수 있다. JSON 형식 { key1 : value1, key2 : value2 } JSON은 키와 값의 쌍으로 이루어진 구조이다. 여러 개의 데이터를 나열 할 경우 콤마를 사용해 데이터를 구분한다. { key1 : { key2 : value }, key2 : [arr1, arr2, arr3] } value 값으로 객체를 지정할 수 있으며 중괄호로 묶어 표현한다. 배열의 경우 대괄호로 묶어 표현한다. JS..

    동기 / 비동기 방식

    동기와 비동기 방식은 데이터를 처리하는 방식이다. 그 둘의 개념과 장단점을 정리해보려고 한다. 동기 (synchronous) 동기 방식은 동시에 일어난다는 의미로 요청을 보냈을 때 바로 응답을 받는다는 의미이다. 요청과 결과가 동시에 일어난다는 것인데 요청을 하면 시간이 얼마가 걸리던지 결과가 주어져야 한다. 따라서 서버에 어떠한 요청을 보냈을 때 그 요청에 대한 응답이 돌아와야 다음 동작을 수행할 수 있다. 1번 작업이 모두 진행될 때까지 2번 작업은 대기해야 하는 방식이다. 동기 방식의 경우 설계가 간단하고 직관적이라는 장점이 있다. 하지만 응답에 대한 결과가 주어질 때까지 대기해야한다는 단점이 있다. 비동기 (Asynchronous) 요청과 결과가 동시에 일어나지 않는 방식이다. 요청에 대한 결과를..

    [SQL] INNER JOIN / OUTER JOIN

    INNER JOIN A와 B테이블이 있을 때 INNER JOIN은 두 테이블이 모두 가지고 있는 데이터를 검색한다. 쉽게 말해서 INNER JOIN은 교집합이다. 위와 같이 A와 B 테이블이 있다고 했을 때, 다음과 같이 Inner Join 하면 SELECT * FROM A INNER JOIN B ON A.id = B.id; 두 테이블 모두에 존재하는 데이터에 대한 결과를 얻을 수 있다. OUTER JOIN OUTER JOIN은 일종의 합집합으로 특정 테이블을 기준으로 데이터를 보여준다. OUTER JOIN은 크게 세 종류로 나눌 수 있다. 1) LEFT OUTER JOIN LEFT OUTER JOIN은 왼쪽 테이블을 기준으로 OUTER JOIN을 수행하는 것이다. A와 B 테이블이 있을 때 왼쪽 테이블..

    Spring MVC

    Spring MVC 란? Spring MVC는 Spring에서 제공하는 웹 모듈로 Model, View, Controller 세 가지 구성요소를 사용해 사용자의 다양한 HTTP Request를 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의 응답, html을 리턴하는 응답까지 다양한 응답을 할 수 있도록 한 프레임워크이다. Spring MVC 구조 0. Spring MVC 동작 순서 핸들러 조회 - 핸들러 어댑터 조회 - 핸들러 어댑터 실행 - 핸들러 실행 - ModelAndView 반환 - ViewResolver 호출 - View 반환 - View 렌더링 1. DispatcherServlet (Front Controller) HTTP Request를 처리하는 Controller HTTP Requ..

    MVC 패턴

    MVC 패턴 디자인 패턴 중 하나로 애플리케이션을 Model, View, Controller 세 가지 역할로 구분한 개발 방법론이다. 소프트웨어의 비즈니스 로직과 화면을 구분하는 데 중점을 두고 있다. Model, View, Controller의 역할 1. Model : 데이터와 비즈니스 로직 관리 모델은 앱이 포함해야 할 데이터가 무엇인지 정의하고 이러한 정보들의 가공을 담당하는 컴포넌트이다. 모델은 사용자가 편집하고자 하는 모든 데이터를 가지고 있어야 하며 뷰나 컨트롤러에 대해 어떤 정보도 알지 못해야 한다. 데이터의 상태가 변경되면 일반적으로 뷰에 알리며 필요에 따라 컨트롤러에 알리기도 한다. 2. View : 레이아웃과 화면 처리 앱의 데이터를 보여주는 방식을 정의한다. 즉, 데이터 및 객체의 입..

    스프링(Spring)

    Spring 이란? Java 언어 기반의 웹 프레임워크로 Java로 다양한 어플리케이션을 만들기 위한 프로그래밍 툴 JPA, Mybatis 등의 Java를 이용한 기술들을 더 쉽게 사용할 수 있도록 해주는 오픈소스 프레임워크 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 > 프레임워크? Spring Framework 특징 1. IoC (Inversion of control, 제어 반전) 제어권이 개발자가 아닌 프레임워크에 있으며 지원하는 형식에 맞게 개발자가 프로그램을 작성하면 프레임워크가 개발자의 코드를 호출해 필요한 객체를 생성, 소멸시키며 생명주기를 관리한다. 2. DI (Dependency Injection, 의존성 주입) 각 요소 또는 서비스 사이에 의존성이 존재..