💻 Computer Science

클라이언트가 HTTP 프로토콜을 이용해 서버로 요청을 보내는 방법인 HTTP Method에는 크게 GET 방식과 POST 방식이 있다. 이 둘에 대해 알아보자. GET, POST GET은 가져온다. POST는 수행한다. GET은 서버에서 데이터를 조회하기 위해 사용하는 메서드이다. POST는 서버에 데이터를 수정하거나 새로 추가하기 위해 사용하는 메서드이다. 둘의 가장 큰 차이점은 데이터를 전송하는 방식이다. GET과 POST 메서드 둘 다 데이터를 서버로 보내야 하는데, GET은 Header에 POST는 Body에 데이터를 포함시켜 전송한다. GET GET은 요청을 전송할 때 필요한 데이터를 URL에 쿼리 스트링을 통해 전송한다. 쿼리 스트링이란 URL 주소 끝에 ? 뒤에 붙는 파리미터들을 말한다. e..
왜 트랜잭션이 안되지?몽고디비를 처음 써보면서 평소처럼 아무 생각없이 @Transaction을 사용했다. 테스트 환경을 격리하기 위해 별다른 작업없이 @Transaction 애노테이션을 붙혀줬는데, 다음과 같은 에러가 발생했다.java.lang.IllegalStateException: Failed to retrieve PlatformTransactionManager for @Transactional test: 에러 메세지를 읽어보면 @Transaction 테스트를 위한 트랜잭션 매니저를 찾을 수 없는 것 같다.스프링은 트랜잭션을 처리하기 위한 트랜잭션 매니저를 자동으로 등록해주는 걸로 아는데, 왜 찾을 수 없다고 하는걸까? 몽고디비는 트랜잭션이 필수가 아니라 트랜잭션 매니저를 등록하지 않는다고 한다.따라..
트리 트리(Tree)란? 트리는 부모노드와 자식노드로 이루어진 계층적인 구조를가지며, 무방향 그래프의 일종이자 사이클이 없는 자료구조이다. 트리는 정점(Vertex)과 간선(Edge)으로 이루어진 그래프의 일종이다. (그래프 > 트리) 트리의 용어 노드(node) : 트리를 구성하는 정점. ex) a,b,c,d,e,f,g 간선(edge,link) : 각 노드간 연결하는 선 루트 노드(root node) : 트리의 최상위 노드. 트리는 하나의 루트 노드만을 가진다. ex) a 리프 노드(leaf node) : 트리의 최하위 노드. ex) d,e,f,g 내부 노드(internal node) : 최소 1개 이상의 하위 노드를 갖는 노드. ex) a,b,c 부모 노드(parent node) : 하위 트리를 가지..
재귀함수 재귀함수는 함수 안에 자신의 함수를 다시 호출하는 함수를 말한다. 재귀함수는 자신의 로직을 내부적으로 반복하다가, 일정한 조건이 만족되면 함수를 이탈하여 결과를 도출한다. 재귀함수는 스택 프레임을 사용해 작동한다. 스택 프레임에 저장되는 정보는 다음과 같다. 매개변수 정보 지역변수 정보 복귀 주소 그렇다면 재귀함수가 어떻게 작동하는지 코드를 통해 알아보자. 다음은 일반적으로 재귀함수를 표현하는 패턴이다. class DFS { public static void dfs(int n) { if (//재귀 탈출 조건) { return; } else { dfs(//탈출을 위한 반복 조건); } } } 예시 코드이다. class DFS { public static void dfs(int n) { if (n ..
HTTP Hyper Text Transfer Protocol의 약어 WWW 서버와 WWW 클라이언트 간의 통신을 수행하는 데 사용하는 네트워크 프로토콜 WWW 서버로부터 정보를 취득할 때 HTTP 프로토콜을 사용해 통신한다. HTTP는 달라고 요청된 데이터에 데이터 속성(정적 이미지, 텍스트 등)을 헤더로 붙여 반환한다. 일반적으로 80번 통신 포트 사용 HTTP에 의한 파일 전송은 요청에 대한 응답을 처리한 후 연결이 끊어지므로 여러 페이지에 걸쳐 처리해야 할 경우 페이지 간 정보를 유지할 수 없다는 단점이 있었지만, HTTP 1.1에서 연결을 끊지 않은 채 여러 요청을 계속 수행할 수 있도록 기능이 확장되었다. HTTP/2는 하나의 연결 내 동시에 여러 개를 요청할 수 있도록 하는 등 효율성을 높이고..
인터넷 TCP/IP라는 패킷 통신 유형의 네트워크 프로토콜을 이용해 전 세계 규모로 서로 연결한 거대한 컴퓨터 네트워크 현재 WWW(World Wide Web)나 전자 메일 같은 서비스가 주로 사용되고 있다. ISP(Internet Serivces Provider)라는 접속 사업자가 개인이 인터넷에 접속할 수 있도록 연결해준다. 인터넷에서는 각 네트워크를 서로 연결하는 라우터가 물통 릴레이처럼 패킷을 중계해 데이터를 주고 받는다. ISP Internet Services Provider의 약어 인터넷 연결을 제공하는 서비스 공급자 전화 회선이나 전용 회선을 사용해 일반 사용자의 요청을 받아 인터넷에 연결한다. 과거 : 아날로그 모뎀을 사용한 다이얼업 접속 방법 사용 최근 : ADSL, 광케이블과 같은 상시..
DNS Domain Name System의 약어 도메인 이름(컴퓨터 이름)으로 IP 주소를 알아내는 서비스 DNS 서비스가 실행되고 있는 컴퓨터를 DNS 서버라고 하며, 서버 내에 도메인 이름과 IP 주소가 있는 데이터베이스를 관리한다. DNS 서버에게 물으면 데이터베이스를 검색해 도메인 이름에 해당하는 IP 주소를 반환해준다. → 클라이언트는 이 IP 주소를 기반으로 통신 DHCP Dynamic Host Configuration Protocol의 약어 컴퓨터에 IP 주소나 서브넷 마스크 같은 네트워크 관련 설정을 자동으로 수행하는 서비스 DHCP를 사용하는 네트워크 환경에서 클라이언트가 요청하면 해당 네트워크를 이용하기 위한 각종 설정과 사용할 수 있는 IP 주소를 발급한다. → 네트워크 접속에 필요한..
트랜잭션 (Transaction) 트랜잭션이란 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다. 작업의 완전성 보장 사용자의 작업셋을 모두 완벽하게 처리(커밋)하거나 처리하지 못하면 원상태로 복구(롤백) MySQL 스토리지 엔진 SQL 엔진 vs 스토리지 엔진 MyISAM InnoDB memory InnoDB 요즘은 다 InnoDB를 사용하는 추세이다. 트랜잭션 지원 FK → 관계형 데이터 베이스 사용 가능 버퍼링 : 작업을 Buffer pool에 쌓아두었다가 한번에 처리 Database Lock Lock 단어 그대로 "잠금"의 의미를 갖는다. 하나의 데이터를 동시에 여러 명이 조작할 수 없도록 잠그는 것으로, 동시성(concurrency)를 보장한다. MySQL 엔진락과 InnoDB..
an2z
'💻 Computer Science' 카테고리의 글 목록