CS지식

· CS지식
트랜잭션 하나 이상의 항목에 대한 작업의 집합을 의미한다. 아이템을 구매하는 예시를 하나 들어보자. 유저가 상대방에게 아이템을 구매하는 시나리오는 아래와 같다. 1. 유저의 골드 차감2. 상대방의 아이템 제거3. 유저에게 아이템 제공4. 상대방에게 골드 제공 즉 1, 2, 3, 4의 경우에서 하나라도 빠지면 아이템 구매를 하는 데 버그가 발생할 수 있다. 즉 각각의 작업으로 존재하지만 묶음으로 처리가 되어야 하는 작업을 의미한다. 1번 API 전송 -> 2번 API 전송 -> 3번 API 전송 -> 4번 API 전송 이렇게 해도 동작만 한다면 문제가 발생하지 않는다. 그러나 묶음으로 처리가 되어야 하는 성격을 가진다면 하나의 API에서 1, 2, 3, 4번의 작업을 수행해서 리소스를 절약할 수 있다는 특..
· CS지식
SOP 정책 (동일 출처 정책) Same-origin policy라고 부르며 말 그대로 동일한 출처의 리소스만 상호작용을 진행하겠다는 의미.서로 소통하려는 두 URL의 프로토콜, 호스트, 포트가 모두 같아야 동일한 출처로 인정하게 된다. 즉 아래 두 개의 주소는 프로토콜, 포트가 동일하지만 호스트의 이름이 달라서 상호작용이 불가능하다. 이때 데이터를 요청하면 CORS가 발생하게 되는 것.https://service.example.com:8080https://api.example.com:8080 CORS (교차 출처 리소스 공유) Cross-Origin Resource Sharing이라고 부르며 이름 그대로 서로 다른 출처끼리 리소스 공유를 가능하게 해주는 방법. 프로젝트를 진행하면 실제로 "CORS가 발..
· CS지식
https://qkrqkrrlrl.tistory.com/139 즉 서로 간의 연결을 지향한다는 의미. 신뢰성을 보장하기 위한 방법 2. 연결을 위해 추가 작업이 필" data-og-host="qkrqkrrlrl.tistory.com" data-og-source-url="https://qkrqkrrlrl.tistory.com/139" data-og-url="https://qkrqkrrlrl.tistory.com/139" data-og-image="https://scrap.kakaocdn.net/dn/k46On/hyV6ePiUvf/XBDPSElkkgv7I3F7vymKV1/img.png?width=478&height=399&face=0_0_478_399,https://scrap.kakaocdn.net/dn/g..
· 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 ..
indeep
'CS지식' 카테고리의 글 목록