본문 바로가기

전체 글

(19)
Pro Git 책 중요내용 정리시작 + Git 기초 시간이 좀 지난 글이지만 git을 공부하는 최고의 방법은 pro git을 읽어보라고 하신 응준님의 글을 읽고 공부를 시작해보게 되었다. 요새 서류랑 면접준비한다고 블로그를 좀 못썼는데.. 너무 오래 안쓴 것 같아서 다시 꾸준히 써보려고 한다. 일단은 가장 중요한 1~3단원만 정리해보자. 1. 버전 관리란? 버전 관리 시스템(VCS, version control system)은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 가져올 수 있는 시스템이다. 1.1 로컬 버전 관리 흔히 나는 파일을 디렉토리에다가 복사한다음에 이름을 바꿔서 관리한다. 귀찮기도 하고 이방법이 제일 쉽다. 하지만 제대로 파일을 관리하려고하면 이렇게 하면 안될 것 같다. 로컬에서 간단한 데이터베이스를 사용해서 파일..
프로세스 스케줄링 1. 제한적 직접 실행 원리(Limited Direct Execution) CPU를 가상화하기 위해서 운영체제는 여러 작업들이 동시에 실행되는 것처럼 보이도록 물리적인 CPU를 공유한다. 프로세스 여러개를 잠깐씩 실행하는 CPU 시분할(time sharing)을 통해 가상화를 구현할 수 있다. 제한적 직접 실행기법의 "직접 실행"이라고 하는 부분은 간단하다. 그냥 프로그램을 CPU 상에서 직접 실행시키는 것이다. 이 간단한 방식에는 크게 두 가지 문제점이 있다. (1) 프로그램을 직접 실행시키면 프로그램이 운영체제가 원하지 않는 일을 하지 않는 것을 보장할 수 없음 (2) 프로세스 실행 시 운영체제가 어떻게 프로그램의 실행을 중단하고 다른 프로세스로 전환시킬 수 있는지, 즉 시분할을 어떻게 구현할 수 있..
프로세스 1. 프로세스 운영체제는 실행중인 프로그램의 개념을 제공하는데, 이를 프로세스(process)라 한다. CSAPP에서는 프로세스를 실행중인 프로그램에 대한 운영체제의 추상화 라고 표현한다. 프로세스가 뭔지 알려면 프로세스가 무엇으로 구성되었는지 이해하면 된다. 아래 그림에서 Processor, Main memory, I/O devices 들로 Process를 추상화 했다고 말한다. 즉 이 세 가지가 프로세스의 구성요소인 것이다. 특정 순간의 프로세스를 생각해보자. 실행되는 동안 접근했거나 영향을 받은 자원의 목록이 이 세가지에 포함되어 있을 것이다. 프로세스의 구성요소를 이해하기 위해 하드웨어 상태(machine state)를 먼저 이해해야 한다. 프로그램이 실행되는 동안 하드웨어 상태를 읽거나 갱신할 ..
운영체제 개요 1. 운영체제 운영체제란 사용자, 응용프로그램과 하드웨어 사이에 있는 소프트웨어 계층이다. 운영체제는 크게 3가지 역할을 한다. (1) 응용프로그램에 편리한 interface를 제공 (2) 시스템 자원 관리 (3) 시스템 보호 운영체제는 추상화(abstraction)를 통해 사용자는 내부 복잡한 로직을 알 필요없이 운영체제가 제공하는 시스템콜 이라는 인터페이스를 통해 하드웨어의 자원을 간접적으로 사용할 수 있다. 사용자는 여러개의 프로그램을 동시에 실행시키기를 원한다. 웹브라우저에 켜놓은 여러개의 사이트들, 게임, 동영상플레이어 등등을 동시에 켜놓고 작업을 한다고 생각해 보자. 마치 컴퓨터는 동시에 수십 혹은 수백 개의 프로세스를 실행하는 것처럼 보인다. 이처럼 CPU가 여러개 존재하는 것처럼 보이는 환..
운영체제 정리 핀토스에서 구현에 치중하느라 부족했던 이론정리를 해볼까 한다. 주로 운영체제 아주 쉬운 세가지 이야기 (A.K.A OSTEP) 책을 사용해서 정리할 예정이다. 정리하는 것도 중요한 능력인 것 같다. 잘 정리해서 면접에서도 잘 써먹어보자!
[WEEK 16] 나만의 무기 - TIL 나만의 무기 진행 상황 백엔드 백엔드는 NodeJS를 사용. 프론트인 javascript, react에 맞춘 선택. 같은 javascript기반으로 좀 더 쉽게 협업 및 지원이 가능. 정글 입학 시험에서 사용했던 파이썬 플라스크와 거의 유사하다고 생각되어 거의 회원가입부터 구현하면서 손에익히는 방식으로 진행. 1) 회원가입, 로그인 passport를 안쓰는 세션방식으로 구현했는데 토큰방식을 사용해보려함 postman으로 테스트완료 구현을 다했지만 자체 회원가입, 로그인 기능을 없애기로 하고 소셜로그인만 하기로함 2) 구글소셜로그인 토큰방식으로 변경해서 프론트와 통합 필요 프론트엔드 React 라이브러리 사용. javascript 는 내용이 너무 방대하니 포이마웹에서 대략적인 개념들을 파악하고 foreac..
[WEEK 15] 나만의 무기 - TIL 1. 나만의 무기 1주차 회고 1주일 동안의 길고 길었던 아이디어 정하기 우리팀은 총 세번의 초안 발표를 거쳐 결국 편하게 스터디 노트를 만드는 '레이블' 이라는 서비스를 만들게 되었다. 우리가 기획을 하면서 어려웠던 점들 중에 하나는 어느 포인트에 맞출지였다. 결국 중요포인트는 어떤 핵심기능의 기술적인 구현을 통해 나중에 면접에서 어필할 수 있는 서비스를 만드는 것이다. 이와 더불어 우리가 재미있게 할 수 있는 서비스를 만들어야 한다. 코치님께서도 말씀하셨지만 힘들고 어려운 순간이 올텐데 그럴 때 바람 한 번 쐬고 와서 금방 모니터 앞에 다시 앉을 수 있는 것도, 샤워중에 해결 못한 문제에 대해서 고민하다가 갑자기 해답이 떠오를 수 있는 것도 결국에는 내가 재밌는 일을 해야 가능한 일일 것이다. 그렇다..
RESTFUL API - 이응준 님의 '그런 REST API로 괜찮은가' 정리 1. RESTFUL API REpresentational State Transfer REST: a way of providing interoperability between computer systems on the internet. 인터넷 상의 컴퓨터 시스템간 상호 운용성(interoperability)을 제공하는 방법중의 하나. www와 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식. 즉 REST API는 Restful한 API = REST 아키텍처의 형식을 지켜서 구현한 API다. WEB WEB(1991) 어떻게 인터넷에서 정보를 공유할까? 표현형식: HTML, 식별자: URI, 전송방법: HTTP 프로토콜 까지 구현은 했는데 HTTP/1.0 (1994-1996) Roy ..