CS지식

· CS지식
TCP (Transmission Control Protocol)전송 제어 프로토콜 특징 1. 연결 지향형 성격을 지니고 있다.-> 즉 서로 간의 연결을 지향한다는 의미. 신뢰성을 보장하기 위한 방법 2. 연결을 위해 추가 작업이 필요하다.-> 3-way-handshake, 4-way-handshake를 통해 연결, 해제 작업을 진행한다. 3. 신뢰성을 보장한다.-> 연결 작업을 통해 패킷 전송을 제어하여 기존 IP의 문제점인 데이터 유실, 순서 꼬임의 문제를 해결하였다. 4. UDP에 비해 속도가 느리다.-> 추가적인 연결 작업을 진행해서 신뢰성을 챙기다 보니 UDP와 비교하면 속도가 느리다.  OSI 7계층의 순서에 따라 데이터 송신, 수신을 진행하게 된다. 여기서 TCP는 4계층(전송 계층), IP는..
· CS지식
우선 이 얘기를 진행하려면 HTTP부터 시작해야 한다. HTTP  HyperText Transfer Protocol의 약어로, HTML 같은 리소스를 가져올 수 있도록 하는 프로토콜.W3 상에서 정보를 주고받는데 단순 파일 주고받는 용도에서 대용량 파일, 3D 이미지 등등 주고받게 진화되었는지 과정을 알아보려고 한다. HTTP/0.9 - 원 라인 프로토콜 1991년 8월 6일 공식적인 첫 출발점으로 여겨진다.HTTP 초기 버전에는 버전 번호가 없었다. 그러나 이후 버전과 구분하기 위해서 0.9로 불리기 시작. 요청GET /mypage.html요청은 단순하게 하나의 라인으로만 구성되었으며, 사용 가능한 메서드는 GET이 유일했다. 응답 hi응답 또한 단순하게 html을 반환하도록 되어있다. 즉 파일의 내용..
· CS지식
웹 개발을 진행하면 200, 401, 404, 500 등 다양한 응답 코드를 마주하게 됩니다. 저도 프로젝트를 진행하면서 스프링 프레임워크의 ResponseEntity 객체를 사용해서 응답을 제공하는데 그 내부에는 이런 다양한 응답 코드를 집어넣을 수 있습니다.  HTTP 상태 코드HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다:1. 정보를 제공하는 응답2. 성공적인 응답3. 리다이렉트4. 클라이언트 에러5. 서버 에러. 결국 응답 코드만으로 어떠한 문제 발생했는지 대략적인 유추가 가능합니다. 1XX 응답 코드정보를 제공하는 응답 해당 코드는 임시 응답을 제공하는 상태 코드입니다. 100(Continue)지금까지의 상태가 괜찮으며 클..
· CS지식
이번에 스터디 주제는 조금 생소하면서 익숙한 주제를 담당하게 되었다. 톰캣(Tomcat)은 WAS의 종류 중 하나인 것, 그리고 스프링 부트에 내장되어 있다는 것만 알고 있지 다른 얘기에 대해서는 전혀 공부하지 않았었다.  간단하게 웹 서버, 웹 어플리케이션 서버에 대해 정리해 보면 다음으로 정리할 수 있다.웹 서버유저의 HTTP 요청이 들어오면 정적인 콘텐츠를 제공해주는 역할을 수행한다.또는 동적인 요청이 들어왔을 때 WAS로 넘겨주는 역할을 담당한다.WAS(웹 어플리케이션 서버)유저의 HTTP 요청이 들어오면 동적인 콘텐츠를 제공해 주는 역할을 수행한다. 즉 WAS의 종류 중 하나가 톰캣이고, 이 톰캣은 동적인 콘텐츠 제공을 담당하는 녀석이다.(동적인 콘텐츠를 서블릿, JSP로 제공을 한다.) 위 이..
· CS지식
트랜잭션의 개념을 여러분들은 많이 들어보셨을 것이다. 트랜잭션작업을 처리하는 명령의 모임.이 작업은 모두 성공하거나, 중간에 하나라도 실패하면 이전 성공도 모두 실패로 돌아간다는 원자성을 가진다.즉 실패하면 롤백. 트랜잭션의 개념을 이해한 채로 스프링 프로젝트를 진행하면서 CUD가 있는 코드에는 @Transactional을 거의 로봇처럼 붙여주며 진행했다. 그런데 이 트랜잭셔널 어노테이션이 트랜잭션을 보장해준다고는 하지만 내부가 어떻게 동작하는지에 대해서는 모르는 사람이 되게 많다.나 또한 몰랐었고, 이번에 정리를 통해 천천히 개념을 집어보려고 한다.  간단한 테스트를 통해 트랜잭션이 어떻게 되는지 알아보자. @Getter ..
· CS지식
오늘 다룰 주제는 인터셉터와 필터의 차이. 둘 다 요청을 가로채서 처리할 수 있는 기능을 가졌다는 공통점이 있어서 혼동하하기 쉬운 개념이라고 생각한다. 필터 오라클 공식문서에서는 다음과 같이 설명이 되어있다. 즉 요청과 응답에 대해 필터링 작업을 수행하는 주체.  필터는 DispatcherServlet 전, 후로 요청을 가로채서 동작하기에 스프링 영역 밖에서 관리된다는 특징이 있다.  자바에서는 인터페이스 형태로 필터를 제공하며 아래 3개의 메서드를 오버라이드 하여 사용할 수 있다. 1. init : 초기화 작업을 진행. (서블릿 컨테이너에서 필터 인스턴스를 만든 뒤 단 한 번만 호출된다.) 2. doFilter : 실제 필터링 로직을 구현. 요청을 처리하기 전후로 request, response를 수정..
· CS지식
스프링을 배우면서 가장 처음 접하는 개념이 IOC와 DI를 접하게 된다. IOC : Inversion Of Control, 즉 제어의 역전이라고 직역을 한다.DI : Dependency Injection, 즉 의존성 주입이라고 직역을 한다. 그러면 이 말들이 대체 뭘까? 왜 제어의 역전이라고 하고 왜 의존성 주입이 스프링의 특징일까?  우선 스프링은 하나의 프레임워크이다.프레임워크 : 어떤 결과물을 구현하기 위해 클래스, 코드들이 합쳐진 형태. 즉 프레임워크가 뼈대라고 볼 수 있다.예를 들면 ppt에서 제공하는 기본 템플릿 느낌? 즉 스프링은 어떤 결과물을 제작하기 위한 하나의 뼈대를 제공하는 도구이며, 우리는 이러한 도구를 이용해서 무언가를 만들어낼 수 있는 것. 그렇기에 스프링은 다양한 편의 기능을 ..
· CS지식
Java에서는 final 키워드를 사용하면 불변의 특징을 가지게 된다. 불변이란?값을 수정하지 못하는 특징을 가진다.그러기에 동일한 데이터를 제공할 수 있다.(thread-safe 특징을 가진다.)즉 한 번 할당하면 더 이상 해당 값을 수정하지 못하게 된다.  final은 변수, 클래스, 메서드에 붙일 수 있다. 1. 파라미터에 붙이는 경우public void fun(final int num){ num = 3; }num = 3을 하는 부분에서 컴파일 에러가 발생한다. 이미 파라미터로 넘어온 num에 final이 붙어서 더 이상 재할당이 불가능한 상태.  2. 변수에 final 붙이는 경우class Car{ ..
indeep
'CS지식' 카테고리의 글 목록 (2 Page)