전체 글 199

HTTP(Hyper Text Transfer Protocol)

* HTTP(Hyper Text Transfer Protocol) HTTP는 웹 상에서 정보를 주고받을 수 있는 프로토콜이다. 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들어 클라이언트(웹 브라우저)가 HTTP를 통하여 서버에게 웹페이지(HTML)을 요청하면 서버는 요청에 응답하여 필요한 정보를 클라이언트에게 전달한다. 주로 TCP를 사용한다. 클라이언트는 서버에게 요청 메시지를 전달하며 서버는 응답 메시지를 보낸다. 클라이언트가 서버에게 보내는 요청 메시지는 다음과 같다. 요청 내용 보기) GET /images/logo.gif HTTP/1.1 헤더 보기) Accept-Language: en HTTP 메소드 요약 HTTP 메소드에 대해서는 따로 포스..

CS/network 2021.07.24

Get과 Post의 차이점

* Get 클라이언트에서 서버로 정보를 요청할 때 사용하는 http 메소드이다. 기존에 있는 정보를 요청할 때 사용되며 get 방식에서 값을 보내는 방식은 2가지 방식이 있다. 1. https://google.com/blog?id=value&page=1 -> 스프링에서 @RequestParam 2. https://google.com/blog/value/1 -> 스프링에서 @PathVariable 1과 같은 방식은 쿼리스트링 방식이라고 한다. 2와 같은 방식은 rest api에서 주로 사용한다. Get의 특징으로는 브라우저 히스토리에 남는다. 길이 제한이 있다. url에 정보가 노출되기 때문에 중요한 정보를 다뤄선 안된다. 데이터를 요청할 때만 사용된다. 멱등성*을 가진다. * Post 클라이언트에서 서버..

Web 2021.07.23

Git flow

* Git-flow? Git을 사용한 개발 작업 절차이다. 완벽한 하나의 방법이 있는 것이 아닌, 각자 팀에 맞는 개발 환경에 따라 변형해서 사용하는 것이 좋다. - Git-flow의 브랜치 master: 제품으로 출시(배포)할 수 있는 브랜치 develop: 다음 버전을 개발하는 브랜치 feature: 단위별로 기능을 개발하는 브랜치 (완료되면 develop 브런치와 병합) release: 배포 전 (master와 병합 전) QA를 통해 버그를 찾아내기 위한 브랜치 hotfixes: master브랜치에서 발생한 버그를 긴급하게 수정하는 브랜치 master와 develop은 항상 유지되는 메인 브랜치들이며 그 외에 feature, release, hotfixes는 필요한 기간에만 유지되는 보조 브랜치들이..

Git 2021.07.22

Static

* JAVA에서의 Static? static(정적)은 '고정된'이란 의미를 가지고 있다. 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다. 이들을 각각 정적 필드, 정적 메소드라고 말한다. 정적 멤버는 객체 (인스턴스)에 소속된 멤버가 아니라 클래스에 소속된 멤버이기 대문에 클래스 멤버라고도 한다. * 정적 멤버 선언 정적 필드와 정적 메소드는 클래스에 고정된 멤버이므로 클래스 로더가 클래스(바이트 코드)를 로딩해서 메소드 메모리 영역에 적재할 때 클래스 별로 관리된다. 따라서 클래스의 로딩이 끝나면 바로 사용할 수 있다! 객체를 생성할 필요 없이 클래스가 메모리에 로딩되면 바로 사용할 수 있는 필드와 메소드인 것이다. 필드를 선언할 때 인스턴스 필드로 ..

JAVA 2021.07.21

백준 1753 최단경로 (JAVA 자바)

문체 출처 - https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. www.acmicpc.net 문제 방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 10 이하의 자연수이다. 입력 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번..

CHAR VS VARCHAR

* CHARACTER(s): CHAR 고정 길이 문자열 정보(Oracle, SQL Server 모두 CHAR로 표현한다. 이는 CHARACTER(s)의 줄임말이다 s는 기본 길이 1바이트, 최대 길이 Oracle 2,000바이트, SQL Server 8,000바이트를 가진다. s만큼 최대 길이를 갖고 고정 길이를 가지고 있으므로 할당된 변수 값의 길이가 s보다 작은 경우에는 그 차이 길이만큼 공간으로 채워진다. 예) char(1000)인데 저장된 변수의 길이가 10이라면 나머지 990은 공백공간. -> 비효율적 * VARCHAR(s) CHARACTER VARYING의 약자로 가변 길이 문자열 정보(Oracle은 VARCHAR2로 표현, SQL Server는 VARCHAR로 표헌한다.) s는 최소 길이 1..

CS/database 2021.07.20

에라토스테네스의 체

* 에라토스테네스의 체 고대 그리스의 수학자인 에라토스테네스가 발견한 소수(1과 자기자신으로만 나누어지는 수)를 찾는 방법이다. 내용은 다음과 같다. - 알고리즘 1. 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 2. 2는 소수이므로 오른쪽에 2를 쓴다. 3. 자기 자신을 제외한 2의 배수를 모두 지운다. 4. 남아있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다. 5. 자기 자신을 제외한 3의 배수를 모두 지운다. 6. 남아있는 수 가운데 5는 소수이므로 오른쪽에 5를 쓴다. 7. 자기 자신을 제외한 5의 배수를 모두 지운다. 8. 위 과정을 계속 반복하면 원하는 구간의 모든 소수가 남는다. 이 때, 100까지의 소수를 구할 때 어디까지 위의 방법을 반복해야 할까? 예를 들어서 17의 배..

CS/algorithm 2021.07.19

백준 1987 알파벳 (JAVA 자바)

문제 출처 - https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 문제 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수..

도커와 MariaDB 설치

* Docker(도커)? 리눅스의 응용 프로그램들을 프로세스 격리 기술을 사용하여 컨테이너로 관리하며 실행하는 프로젝트이다. 도커 컨테이너는 소프트웨어를 소포트웨어의 실행헤 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 따라서 도커의 가장 큰 장점인 실행 중인 환경에 관계 없이 언제나 동일한 실행을 보장한다. 팀 프로젝트를 할 때 누구는 되고 누구는 안되고 이런 경험이 있을 텐데 이런 어려움을 도커를 사용하여 해결할 수 있다. * 도커 설치 docker client와 server를 한번에 설치할 수 있는 도커 허브를 설치한다. https://docs.docker.com/docker-for-windows/install/ Install Docker Desktop on Windows docs.d..

카테고리 없음 2021.07.16

Cache (캐시)

사실 컴퓨터구조 글이지만 카테고리 만들기 뭐해서 그냥 운영체제 카테고리에 작성한다. * Cache(캐시)? 데이터나 값을 미리 복사해놓는 임시 장소이다. 원래 데이터 저장 장치에서 데이터를 불러오는 것보다 캐시 접근 시간은 훨씬 빠르다는 장점이 있다. 또한 값을 다시 계산하는 시간을 절약하고 싶을 때 사용한다. 캐시에 데이터를 미리 복사해높으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근이 가능하다. 기본적으로 데이터를 미리 복사하여 저장해두는 메모리를 의미한다. 휘발성의 성질을 갖는다. * CPU 캐시 대용량의 메인 메모리 접근을 빠르게 하기 위해 CPU 칩 내부나 바로 옆에 탑재하는 작은 메모리이다. 메모리 접근 속도가 늘어나는 것에 비해 CPU의 처리 속도가 훨씬 빠르게 일어나고 있기 때..

CS/operating system 2021.07.14