본문 바로가기

분류 전체보기

(100)
[네트워크] REST, REST API, RESTful ? REST(Representational State Transfer)는 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다. 자원의 상태 : JSON, XML, TEXT, RSS 즉 REST란 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다. 예를 들면, "라면인 상품을 생성한다” 라는 호출이 있을 때, “상품”은 생성되는 자원 (resource) “생성한다”라는 행위는 메서드 (post) "상품명이 진라면인 상품"은 메시지 ({"name":"진라면","p..
[네트워크] HTTP vs HTTPS HTTP란: Hypertext transfer protocol, 웹 서버와 사용자의 인터넷 브라우저 사이에 문서를 전송하기 위한 통신규약. 인터넷에서 하이퍼텍스트를 교환하기 위해 사용되는 통신규약. 하지만 HTTP는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이였기 때문에, HTTP로 비밀번호나 주민등록번호 등을 주고 받으면 제3자가 정보를 조회할 수 있었다. 그리고 이러한 문제를 해결하기 위해 HTTPS가 등장하게 되었다. HTTP method : GET, POST, PUT, DELETE 장점: 불특정 다수를 대상으로 하는 서비스에 적합한 방식이다. 수십만명이 웹 서비스를 사용하더라도 접속유지는 최소한으로 할 수 있기 때문에, 더 많은 유저의 요청을 처리할 수 있다. 단점: 보안 : 1 평문 통..
[OS] Process와 Thread Process : 사전적 의미 : 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 실행된 프로그램을 의미한다. 특징: 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다. 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다. 프로세스(process)의 메모리 구조 Code 영역 : 프로그램을 실행시키는 실행 파일 내의 명령어들이 올라갑니다. (쉽게 말하면 소스코드가 올라간다고 생각하면 됨) Data 영역 : 전역변수, static 변수의 할당. Heap 영역 : 동적할당을 위한 메모리 영역. Stack 영역 : 지역변수, 함수 호출시 전달되는 인자(파라미터)를 위한 메모리..
프레임워크 vs 라이브러리 프레임워크 : 원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대를 의미합니다. Spring이나 Android 같이 이미 만들어진 뼈대 안에서 개발자가 쉽게 개발할수 있게 만든것이 프레임워크. 예를 들어 다른 곳으로 이동할 때 '도구'인 비행기를 타고 이동하지만 '비행기'가 컨트롤하고 나는 가만히 있다. 예시 : Spring, Python, Django, Flask, Android, Ruby on Rails 라이브러리: 특정 기능을 모와둔 코드, 함수들의 집합이며 코드 작성 시 활용 가능한 도구들을 의미합니다. 자주사용되는 코드를 자율성 높고 편하게 사용 가능 예를 들면 '도구'인 '가위'를 사용해서 '내가' 직접 컨트롤하여 자르는게 라이브러리와 비슷함 예..
자세한 Git 사용법 - 9 (배포 관리 & 태그) 1. 버전 규칙 : 첫자리가 0으로 시작하면 아직 초기 개발 중인 제품을 의미 정식 버전은 1부터 시작 (이를 메이저major 버전 이라고 함.) 두번째 자리는 메이저 버전에서 기능을 추가하거나 변경 사항이 있을떄 변경. (마이너 번호) 세번째 자리는 버그 수정 등 미미한 변화가 있을때 바꿈 ex) 1.0, 2.2.5 2. 태그 깃에서는 코드 배포를 관리하려고 태그기능을 제공함. 태그는 특정 커밋의 해시 값을 가르키는 꼬리표를 의미 Annotated : 태그 이름 + 정보 포함 Lightweight : 태그 이름만 포함 $ git tag $ git tag -l : 태그 리스트 3. Annotation 태그 Annotated는 '주석이 달린'이라는 뜻입니다. (중복 불가) $ git tag -a 버전 : ..
자세한 Git 사용법 - 8 (reset, revert) 1. 리셋 (reset) 리셋은 커밋을 기준으로 이전 코드로 되돌리는 방법으로, 기록한 커밋을 취소합니다. 커밋을 취소하는 만큼 리셋할 때는 항상 신중하게 작업해야 함. $ git log --oneline : 간략한 커밋 해시 값과 메시지 값만 출력 $ git reset --hard HEAD^^^ : 고정된 커밋 해시 값을 사용하지 않고, HEAD 포인터를 이용하여 상대적 위치를 지정가능. ^(캐럿) 또는 물결(~) 기호를 사용해 HEAD의 상대적 위치를 지정 가능. $ git reset 옵션 커밋ID : reset 명령어를 사용하면 지정된 커밋 코드로 되돌아감 soft : 스테이지 영역을 포함한 상태로 복원 mixed : 기본 옵션 값은 mixed입니다. reset 명령어를 사용할 때 옵션을 지정하지..
자세한 Git 사용법 - 7 (병합과 충돌) Fast-Forward 병합 3-way 병합 rebase 1. Fast-Forward 병합 순차적 커밋 맞추어 병합. 브랜치 1에는 추가된것이 없고 브랜치 2에만 계속 진행된후 merge를 할경우를 Fast-Forward 병합이라고 한다. 2. 3-way 병합 2.1 공통 조상 브랜치별로 각각 커밋하면 두 브랜치로 갈라짐. 이때는 3-way 방식을 이용해야 한다. (1)조상커밋 (2)브랜치1 커밋 (3) 브랜치2 커밋 - 브랜치가 3개 있다고 해서 3-way 병합이라고 한다. 2.2 병합 커밋 병합을 성공적으로 완료한 후에는 새로운 커밋을 추가로 생성합니다. 새로 생성된 커밋을 병합 커밋이라고 합니다. 병합 커밋은 부모 커밋이 2개라는 특징이 있습니다. git reset --hard HEAD^ : 병합취..
자세한 Git 사용법 - 6 (임시처리 - stash) 1. Stash 작업 브랜치를 변경하려면 워킹 디렉터리는 깨끗한 상태로 정리되어 있어야함. 중간에 작업중에 다른 작업을 해야할때 stash 명령어 사용. $ git stash : 현재 작업들을 임시 스택 영역에 저장 $ git stash save : stash를 여러 개를 생성할 때 유용 $ git stash save "메시지" : 메시지도 추가 가능 $ git stash list : stash list $ git stash show : stash된 내용과 이전 내용 비교 임시 저장한 스태시 불러오기 : 스태시 복원은 pop, apply 명령어 2개를 제공합니다. 2개의 명령어에는 차이가 있습니다. pop 명령어는 스택내용을 복원한 후 스택목록에서 자동으로 삭제됩니다. apply 명령어는 스택목록을 읽은..