분류 전체보기 202

[개발방법] TDD (Test Driven Development) 기반 개발이란?

TDD란 무엇인가 ? TDD란 Test Driven Development의 약자로 한국말로 번역하면 "테스트 주도 개발"이라는 의미이다. 작은 단위의 테스트 케이스를 먼저 작성하고, 이를 통과하는 코드를 추가적으로 계속해서 반복하면서 구현하는 개발 방법을 이야기 한다. 짧은 개발 주기의 반복에 의존하는 개발 프로세스이고, 애자일 기법 중에서 eXtream Programming이라는 XP의 Test - First 개념에 기반을 둔 단순한 설계를 중심으로 한다. eXtream Programming : 지속적으로 프로토타입을 완성하는 애자일 방법론 중 하나로 추가 요구사항에 유연하게 대처할 수 잇다. 단위 테스트 (Unit Test) : 한 단위를 테스트하는 것 자바나 파이썬의 Class 같이 하나의 기능을 ..

[운영체제] 5. CPU 스케쥴링 (CPU Scheduling)

# 본 게시물은 KOCW의 반효경 교수님의 운영체제 강의를 참고하여 작성하였습니다. CPU Scheduling CPU and I/O Bursts in Program Execution 시스템은 I/O Burst, CPU Burst가 빈번하게 일어난다. 이는 프로그램의 종류에 따라서 상이하다. 특히 사람이 관여하는 프로그램일수록 번갈아 가면서 계속해서 일어난다. 이러한 여러 종류의 작업이 섞여 있기 때문에 CPU 스케듈링이 필요하다. Interactive job에게 적절한 response 제공 요망 CPU와 I/O 장치 등 시스템 자원을 골고루 효율적으로 사용하기 위해서 프로세스의 특성 분류 프로세스는 그 특성에 따라 다음 두 가지로 나눔 I/O-bound Process CPU를 잡고 계산하는 시간보다 I/..

[운영체제] 4. 프로세스 관리 (Process Management)

# 본 게시물은 KOCW의 반효경 교수님의 강의를 기반으로 정리한 것입니다. Process Management(프로세스 관리) 프로세스 생성( Process Creation ) 부모 프로세스가 자식 프로세스 생성 프로세스의 트리(계층 구조) 형성 프로세스는 자원을 필요로 함 운영체제로부터 받는다. 부모와 공유한다. 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전형 공유하지 않는 모델 수행 (Execution) 부모와 자식은 공존하며 수행되는 모뎅 자식이 종료(Terminate)될 때까지 부모가 기다리는(Wait) 모델 주소 공간 (Address Space) 자식은 부모의 공간을 복사함 (binary and OS data) 자식은 그 공간에 새로운 프로그램을 올림 유닉스 예 ..

[운영체제] 3. 프로세스 (Process)

# 본 게시물은 KCOW의 반효경 교수님의 강의를 기반으로 정리한 것입니다. Process : Process is a program in execution (프로세스는 실행중인 프로그램이다.) 프로세스의 문맥 (Context) 현재 프로세스의 특정 시점에 어떤 작업을 했는지, 어떤 상태인지를 알 수 있는 정보 CPU 수행 상태를 나타내는 하드웨어 문맥 Program Counter 각종 Register 프로세스의 주소 공간 Code, Data, Stack 프로세스 관련 커널 자료 구조 PCB (Process Control Block) Kernel Stack Process State (프로세스의 상태) 프로세스는 상태가 변경되며 수행된다. Running : CPU를 잡고 Instruction을 수행중인 상태..

[운영체제] 2. 컴퓨터 시스템과 프로그램의 실행

# 본 게시물은 KOCW의 반효경 교수님의 강의를 기반으로 정리한 것입니다. System Structure & Program Execution (컴퓨터 시스템과 프로그램의 실행) CPU의 역활 CPU는 매순간 메모리의 있는 기계어를 읽어와 실행을 하게된다. Program Counter가 가르키고 있는 다음 명령어를 로딩한다. 특별한 일이 없으면 CPU는 다음 명령어를 수행한다. 제어문이나 특별한 명령어를 만나면 점프를 하거나, 반복한다. 즉 CPU는 아주 빠른 일꾼이라고 생각하면 된다. mode bit mode bit이 0이냐 1이냐에 따라서 0이면 CPU가 실행가능한 모든 명령어 실행 가능 1이면 한정된 명령어만 수행가능 0 : 운영체제가 가지고 있음 1 : 사용자 프로그램이 CPU를 가지고 있음 > ..

[취업준비] 2021년 카카오 인턴십 - 코딩테스트 후기

2021 kakao internship 카카오는 상반기에 공개채용을 진행하지 않았다. 대신 이번 상반기에는 대규모 채용 연계형 인턴십을 진행하기에 지원하게 되었다. 가장 특이한 점은 카카오는 지원서를 제출하지 않는다는 것이다. 코딩테스트를 먼저 응시하고 합격자에 한해서만 서류를 다시 제출받아 서류 합격자를 발표하는 형식이다. 즉 아래와 같은 프로세스로 영입이 된다고 한다. 지원서 접수 -> 온라인 코딩테스트 -> 서류 접수 -> 서류 전형 -> 인터뷰 -> 인턴십 -> 전환 인터뷰1. 지원 접수 정말 간단하게 이름, 이메일 등의 기초적인 정보만 입력하고 참가 신청을 하면 인턴십 코딩테스트에 응시할 수 있게 된다. 2. 코딩테스트 코딩테스트는 카카오스럽게 진행된다. 총 4시간 동안 5문제를 풀게된다. 카카..

[취업준비] 2021년 라인 AD Platform 채용연계형 인턴 - 코딩테스트 후기

※ 아래의 글은 주관적인 생각을 적은 것입니다. ※ 코딩테스트 문제나, 내용, 진행 과정은 포함하고 있지 않습니다.2021년 LINE AD Platform 채용연계형 인턴 모집 라인 공채에서 탈락하고 너무 아쉬워, 라인 인턴에 지원하게 되었다. 1. 서류 접수 라인 공채와 마찬가지로 서류는 적합 부적합을 판단하기만 하는 것 같았다. 라인 공채와 같이 탈락하지 않기 위해서 조금씩 계속 문제를 풀었다. 2. 코딩테스트 : 코딩테스트는 총 3문제로 난이도는 평이했다. 대신 2번 문제의 경우 효율성 테스트를 통과해야 했기때문에 테스트케이스를 통과하고도 계속해서 생각했던 것 같다. 사실 3문제 모두 제출하기는 했지만, 이제까지 제출했던 것이 사실은 틀렸던 경우가 많아서 큰 기대는 하고 있지 않았다. 특히 2번 문..

[취업준비] 2021년 상반기 CJ올리브네트웍스 코딩테스트, 인성 후기

※ 아래의 글은 주관적인 생각을 적은 것입니다. ※ 구체적인 문제, 내용, 진행 과정은 일절 포함하고 있지 않습니다. 2021년 상반기 CJ올리브네트웍스 신입채용 - SI Project Engineer 상반기 CJ올리브네트웍스에서 신입사원을 모집했고, 복지로 유명한 기업이었고, SI 프로젝트도 CJ ENM위주로 진행된다고 해서 지원했다. 1. 지원 접수 CJ는 2개의 문항을 작성했다. 최대한 SI에 맞게 내 자신을 표현했고, 솔직하게 쓰기 위해서 노력했다. 작년에는 Cloud Service로 지원했다가 탈락해서, 최대한 나에게 맞는 직무를 고르고자 노력했고 어필했다. 2. 코딩테스트 및 인성검사 총 4시간이 소요되는 시험응시 일정을 받았다. - 대기 시간 : 30분 - 인성 검사 : 1시간 - 쉬는 시간..

[취업준비] 2021년 상반기 네이버 신입공채 - 코딩테스트 후기

※ 아래의 글은 주관적인 생각을 적은 것입니다. ※ 코딩테스트 문제나, 내용, 진행 과정은 일절 포함하고 있지 않습니다.2021년 네이버 신입 공채 : 기술 직군 서류 접수 많은 IT 기업들이 그렇듯 네이버도 서류에서는 자격요건만 심사하는 것으로 알고있다. 코딩테스트 코딩테스트는 총 4문제가 나왔다. 1번과 3번은 비교적 쉽게 풀 수 있었지만, 2번의 경우 시간복잡도를 넘길 수 있을까 하는 생각으로 제출하고, 4번은 시도하다가 시간이 부족해서 못풀었다. 코딩테스트 결과 당연히 탈락이라고 생각했는데 놀랍게도 합격했다. 2번 문제의 경우 재귀함수를 통해서 조합을 만들었는데, 많은 사람들이 슬라이딩 윈도우를 활용하는게 맞다고 했고, 나도 그렇게 생각해서 2.5솔로는 합격을 못하겠다고 생각했지만 정말 당황스럽게..

[취업준비] 프로그래머스 - 2021 Dev-Matching : 웹 백엔드 개발자 후기

2021 Dev-Mathcing : 웹 백엔드 개발자프로그래머스에서는 정기적으로 Dev-Matching이라는 프로그램을 통해서 취업을 할 수 있는 기회를 제공한다. 다른 취업과는 다른 차이점이 있다면 코딩테스트 결과를 토대로 이력서를 각 회사로 보내고, 검토받아 면접까지 가게 되는 것이다. 또한 한번에 5개 기업을 선택할 수 있기 때문에 다른 전형보다는 유연하게 대처할 수 있다는 것이다. 즉 코딩테스트 -> 각회사 서류 전형 -> 각회사 면접 -> 결과 순이다.1. 지원 접수 다른 채용 전형과는 다르게 자기소개서를 작성하지 않는다는 큰 이점이 있다. 정말 간단한 이력서와 개인정보를 적고 입사하기 희망하는 5개의 회사를 선택하고 지원하면 된다. 이 단계는 정말로 지원하기만 하는 것으로 코딩테스트를 통과해야..