HTTP (HyperText Transfer Protocol) HTTP는 클라이언트와 서버 사이에 HTML과 같은 하이퍼미디어 문서를 전송하기 위한 프로토콜이다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 하다. 클라이언트에 의해 전송되는 메시지를 요청(requests), 그에 대해 서버에서 응답으로 전송되는 메시지를 응답(responses)이라고 한다. 예를 들면 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지나 그림 정보를 요청하면 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달한다. 이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다. 단순 텍스트를 주고받기 때문에 누군가 네트워크에서 신호를 가로채 볼 수..
https://studyingazae.tistory.com/18 [Git] Git 기본 명령어 / 기본사용법 (CMD 및 Bash 사용법) * git-CMD, git-Bash 명령어, add, pull, push, commit, Branch, Github Desktop와 관련된 내용. * CLI 명령어를 사용할거면 Git-Bash 또는 Git-CMD 중 편할 걸 사용한다. * Git 설치가 안되있으면 아래 포스팅부터 시작 2021.0 studyingazae.tistory.com 1. Git 폴더 초기화 (init / pull) git init : 현재 폴더를 기준 폴더로 하고 git을 관리 git pull : 현재 폴더에 모든 github 파일 업데이트 2. Git 상태 확인 (status / log) ..
Gradle 자동화된 컴파일/빌드/실행 시스템. 그래들은 빌드 구성 파일들을 통해 프로젝트 빌드가 구성되고 관리되게 해준다. 따라서 프로젝트를 빌드하는 방법, 빌드에 필요한 모듈간의 의존 관계 같은 내용들이 정의된다. 그루비(Groovy) 언어 기반의 스크립트로 선언된다. 장점 유연성 플러그인을 사용하여 (안드로이드 스튜디오 같은)다른 환경에 통합될 수 있다. 특징 합리적인 디폴트 그래들은 사전 정의된 합리적인 디폴트 구성 설정들을 가지고 있다. 개발자가 따로 빌드 설정을 주지 않아도 합리적으로 설정된 디폴드 값을 사용하여 빌드가 수행될 수 있다. 의존 관계 프로젝트의 모듈 A가 모듈 B에 의존하고 있다면, 이 의존 관계를 프로젝트 빌더에 알려야 한다. 프로젝트에 필요한 라이브러리와 JAR 파일도 마찬가..
ORM (Object Relation Mapping) 객체 관계 매핑. 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체는 객체대로, DB는 DB대로 설계하면 ORM이 알아서 매핑해준다. JPA: 기술 명세. API. Hibernate: 자바 언어를 위한 객체 관계 매핑 프레임워크. jpa를 구현한 실체 구현체라고 보면 된다. JPA (Java Persistence API) 자바 플랫폼 SE와 자바 플랫폼 EE를 사용하는 응용프로그램에서 관계형 데이터베이스의 관리를 표현하는 자바 API이다. 기존에 EJB에서 제공되던 엔터티 빈(Entity Bean)을 대체하는 기술이다. 구성 요소 JPA는 아래의 세 가지 영역으로 구성된다 javax.persist..
링크 : https://www.acmicpc.net/problem/13904 사용 언어 : JAVA 풀이 마감일이 많이 남은 순으로 정렬한 후, 가장 마지막 날부터 선택할 수 있는 가장 최선의 선택을 고른다. ex) 일 별 해결할 수 있는 과제 목록 6일 째 : 5 5일 째 : 5 4일 째 : 5 60 40 10 3일 째 : 5 60 40 10 30 2일 째 : 5 60 40 10 30 50 1일 째 : 5 60 40 10 30 50 20 6일 째부터 1일 째까지 선택할 수 있는 최고의 가치를 가진 숙제를 선택한다. 그리디 알고리즘의 경우 몇가지 팁이 있다고 한다. 이번 선택이 다음 선택에 영향을 받지 않도록 만들어 보기 뒤에서부터 생각하기 이번 문제의 경우 두 가지 팁 다 적용된 사례라고 볼 수 있다...
질문 출처: https://github.com/jjuyeon/Tech-Interview-Study/tree/main/operatingSystem 가상 메모리 개념 가상 메모리는 메모리 관리 기법의 하나로, 기계에 실제로 이용 가능한 기억 자원을 이상적으로 추상화하여 사용자들에게 매우 큰 메모리로 보이게 만드는 것을 말한다. 각 프로그램에 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식이다. 쉽게 말해서 ssd나 하드를 램처럼 사용하는 기술이다. 프로그램이 실행되기 위해서는 보조기억장치(HDD, SSD 등)에 저장되어 있는 프로그램의 데이터들을 주기억장치(RAM)로 가져와야 한다. 하지만 다음과 같은 두 가지 상황에서는 모든 데이터들이 주기억 장치로 이동할 수 없다. 1. 프로그램 전체의 크기가 ..
컨테이너 오케스트레이션 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 것. 재설계할 필요 없이 각기 다른 환경 전반에 동일한 애플리케이션을 배포하는 데에도 도움이 된다. Kubernetes 쿠버네티스는 컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리시스템으로, 오픈소스 플랫폼이다. 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 쉽게 확장할 수 있다. 쿠버네티스는 또한 크고, 빠르게 성장하는 생태계를 가지고 있다. 쿠버네티스 서비스, 기술 지원 및 도구는 어디서나 쉽게 이용할 수 있다. 기본 개념 쿠버네티스에서 가장 중요한 것은 desired state 라는 개념이다. 쉽게 말해 사용자가 원하는 서비스, 네트워크 상태를 의미 한다. 얼마나 많은 컨..
2022 KAKAO BLIND RECRUITMENT 파괴되지 않은 건물 링크 : https://programmers.co.kr/learn/courses/30/lessons/92344 사용 언어 : JAVA 문제 설명 N x M 크기의 행렬 모양의 게임 맵에는 내구도를 가진 건물이 각 칸마다 하나씩 있다. 적은 이 건물들을 공격하여 파괴하려고 하고, 반대로 아군은 회복 스킬을 사용하여 건물들의 내구도를 높이려 한다. 건물은 적의 공격을 받으면 내구도가 감소하고 내구도가 0이하가 되면 파괴된다. 적의 공격 혹은 아군의 회복 스킬이 모두 끝난 뒤 파괴되지 않은 건물의 개수를 구하라. 첫 번째 스킬: 적이 맵의 (0,0)부터 (3,4)까지 공격하여 4만큼 건물의 내구도를 낮춤 두 번째 스킬: 적이 맵의 (2,0..
컨테이너와 가상머신 비교요약가상 머신(VM)은 서버 하드웨어를 가상화(또는 직접 관리할 필요성을 제거)하는 반면, 컨테이너는 서버의 운영 체제를 가상화한다. Docker는 컨테이너를 위한 운영 체제(또는 런타임)이다. 컨테이너를 실행하려는 각 서버에 Docker Engine이 설치되어 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령 세트를 제공한다. 가상머신Host: 가상 시스템 호스트 서버이며 처리 능력, 메모리, 디스크 및 네트워크 I/O 등과 같은 컴퓨팅 리소스를 제공하는 기본 하드웨어.GuestOS: 운영 체제 및 애플리케이션 소프트웨어의 완전히 별개의 독립적 인스턴스. 호스트 VM에 상주하고 해당 서버의 컴퓨팅 리소스에서 공유하는 가상 워크로드.Hypervisor: 가상화 ..
Docker 란?리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트.Docker는 컨테이너를 위한 운영 체제(또는 런타임)이다. 컨테이너를 실행하려는 각 서버에 Docker Engine이 설치되어 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령 세트를 제공한다.구조도커는 클라이언트-서버 아키텍처를 사용한다. Docker 클라이언트는 Docker 데몬과 REST API를 사용하여 UNIX 소켓 또는 네트워크 인터페이스를 통해 통신한다. Docker 데몬은 Docker 컨테이너를 빌드, 실행 및 배포하는 무거운 작업을 수행한다.도커 데몬Docker API 요청을 수신하고 이미지, 컨테이너, 네트워크 및 볼륨과 같은 Docker 개체를..