목록취준 (11)
호비시의 끄적끄적
취업 결론부터 말하자면 취업에 성공했다. 거의 2달 동안 75군데 지원하였고, 서류합격은 10건 남짓, 1차 면접 합격은 5건, 최종합격은 1건이었다. 취업하기 까지의 과정을 짧게나마 정리해보고자 한다. 이력서 작성 부트캠프 항해99를 수료하고, 이력서를 작성하였다. 이력서를 작성할 때 이것 저것 많이 참고하였지만, 가장 도움이 됐던 것은 역시 워니님의 블로그(https://wonny.space/writing/work/engineer-resume). 어떤 것을 어필해야하고, 어떤 키워드를 넣어야 하는지, 피해야 할 점은 무엇인지 정말 잘 정리되어 있다. 이를 바탕으로 작성한 이력서를 작성하였고, 항해99 수료생들과 서로 이력서를 봐주며 피드백 해주고 보완해 나갔다. 물론 짧은 경력, 부족한 프로젝트, 모..
Dead Lock 이란? 운영체제에서 프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태. 다른 프로세스가 점유하고 있는 자원을 둘 이상의 프로세스가 서로 기다릴 때 무한 대기에 빠지는 상황이다. Dead Lock 이 발생하는 상황 Dead Lock이 발생하려면 한 시스템 내에서 4가지 조건이 동시에 성립할 때 발생한다. 상호 배제 한 번에 한 프로세스만 사용할 수 있어야 한다. 사용중인 자원을 다른 프로세스가 사용하려면 요청한 자원이 해제될 때까지 기다려야 한다. 점유 대기 자원을 최소한 하나 보유하고, 다른 프로세스에 할당된 자원을 점유하기 위해 대기하는 프로세스가 존재해야 한다. 비선점 이미 할당된 자원을 강제로 빼앗을 수 없다. 순환 대기 대기 프로세스의 집합이 순환 형태로 자원을 대기하고..
SOLID란? 컴퓨터 프로그래밍에서 SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 두문자어 기억술로 소개한 것이다. 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용할 수 있다.SOLID 원칙들은 소프트웨어 작업에서 프로그래머가 소스 코드가 읽기 쉽고 확장하기 쉽게 될 때까지 소프트웨어 소스 코드를 리팩터링하여 코드 냄새를 제거하기 위해 적용할 수 있는 지침이다. 이 원칙들은 애자일 소프트웨어 개발과 적응적 소프트웨어 개발의 전반적 전략의 일부다. (출처 : 위키백과) 한 문장으로 정리하자면 객체 지향 프로그래밍 설계의 5가지 기본 원칙이다. SRP(Single Responsi..
Process 실행중인 프로그램을 프로세스라고 한다. 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행중인 것을 말한다. 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 스레드로 구성된다. Thread 프로세스 내에서 실제로 작업을 수행하는 주체를 말한다. 모든 프로세서에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 또한 두 개 이상의 스레드를 가지는 프로세서를 멀티스레드 프로세스라고 한다. 스레드의 생성과 실행 자바에서 스레드를 실행하는 방법은 두 가지 이다. Runnable 인터페이스를 구현 Thread 클래스를 상속 두 방법 모두 작업하고 싶은 내용을 run()메소드에 작성하면 된다. // 인터페이스를 구현 class ThreadWithRunnable i..
TCP와 UDP TCP와 UDP는 OSI 7계층의 4계층인 전송계층에서 사용되는 프로토콜이다. 전송계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어 등을 담당하는 계층이다. 간단히 설명하자면 데이터의 전달을 담당하는 계층이다. TCP Transmission Control Protocol의 약자로 문자 그대로는 전송을 제어하는 프로토콜이라는 뜻 TCP의 정의는 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다. 특징 연결형 서비스로 가상 회선 방식을 선택 3-way handshaking 과정을 통해 연결을 설정 4-way handshaking 을 통해 해제 흐름, 혼잡을 제어 높은 신뢰성 UDP 보단 느..
REST API를 알아보기 전에 우선 API에 대해 알아보자 API란? API란 Application Programming Interface 의 약자로 컴퓨터의 기능을 실행시키는 방법을 의미한다. 회원가입, 로그인, 게시글 작성, 조회, 수정, 삭제 등등 특정 기능을 담당하고 있는 하나 하나가 모두 API 이다. 클라이언트가 요청(Request)을 하면 서버에서 API에 맞는 기능들을 실행하고, 적절한 응답(Response)을 보내줄 것이다. REST API란? REST API 란 한 줄로 말하면 다른 사람의 컴퓨터의 기능을 실행히시는 형식을 의미한다. 좀더 자세히 설명하면, HTTP를 이용해서 통신을 할 때 특정 Resource 를 특정 method 를 통해 전달하는 방식을 의미한다. REST의 특징 ..
인터넷 브라우저에서 URL 입력이 들어왔을 때 서버까지 도달하는 흐름에 대해 적어본다. 1. URL 요청 클라이언트가 주소창에 URL 을 입력합니다. 2. URL 분석 브라우저가 해당 URL을 분석합니다. shcem : 자원에 접근할 방법을 정의해 둔 프로토콜 이름(ex. http, ftp) host : 도메인 이름. IP address도 사용 가능 Post : 포트 번호. (HTTP 기본포트 80, HTTPS 기본포트 443 생략가능) path : 자원의 경로 query : Query String. GET 방식으로 요청할 때 필요한 데이터를 넘겨주기 위함 fragment : anchor. HTML에 특정 ID가 있는 곳으로 스크롤 이동할 수 있도록 하기 위함 URL이 문법에 맞지 않는다면 웹 브라우저의..
운영체제란? 운영체제(OS, Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임이다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다. 컴퓨터 구조 컴퓨터는 기본적으로 CPU, Memory, Disk와 I/O 로 이루어져 있습니다. CPU는 속도가 가장 빠르지만, 용량이 가작 작습니다. Disk는 속도가 가장 느리지만, 용량이 가장 큽니다. Memory는 이 둘 사이에 데이터를 주고 받는 역할을 합니다. 개발자가 만든 프로그램을 실행한다고 예를 들어봅시다. 사람들이 ..