테스트코드의 필요성
Spring 2022. 5. 9. 11:56

들어가며 5개월 전, 테스트코드를 처음 작성하면서 이런 생각을 했다. '이거... 테스트 통과하는 게 당연한 거 아니야...?' 'given에서 조건을 다 주고 테스트하는데 당연히 통과하지... 이럴 거면 왜 테스트코드를 작성하는 거지?' '내가 뭔가 잘못 작성하고 있나?' 멘토님은 테스트코드의 필요성을 제대로 알지 못하면 그런 생각이 드는 게 당연하고, 심지어 '짜고 치는 거 아닌가'라는 생각이 드는 것도 맞게 생각한 거라고 하셨다. 여기에서 말하는 테스트코드의 필요성에는 어떤 게 있을까? 테스트코드를 왜 작성해야 하는지 알아보자. 필요성 DB 변경 없이 테스트 실무에서는 API 호출을 통해 동작을 테스트하기 어려운 경우가 많다. 실제 사용하는 DB를 변경하면 절대 안되기 때문에 로컬 환경이 아닌 이상..

Semaphore & Mutex
OS 2022. 4. 30. 23:37

들어가며 "세마포어와 뮤텍스의 차이점을 말해보세요." 어제까지만 해도 이 질문에 대답하기 어려웠다. 이 글을 보고 있는 당신도 아마 어제의 나와 비슷한 상태일 거라고 생각한다. (난 이제 아니다!) 대답하기 위해, 처음부터 알아보자. 목차 1. 세마포어란? 2. 세마포어의 연산 3. 세마포어의 분류 4. 뮤텍스 5. 세마포어와 뮤텍스의 차이점 세마포어와 뮤텍스 세마포어란? 두 개 이상의 프로세스들은 간단한 형태의 시그널을 이용해 협동할 수 있다. 한 프로세스가 특정 시그널을 수신할 때까지 정해진 위치에서 중지하도록 강제한다. 시그널을 위해 세마포어라고 불리는 특수 변수들을 사용한다. 두 개 이상의 프로세스들이 협동하기 위해 시그널이 필요하다. 시그널 발신, 수신을 위해 변수가 필요하다. 세마포어는 특수 ..

FNF 제 2회 발표 - 준비편
Presentation 2022. 4. 30. 22:30

들어가며 이번달에도 FNF 발표자로 참여했다. 주제를 먼저 정해서 공부하지 않고 이번 달에 공부했던 것들 중 가장 흥미로웠던 주제를 발표하기로 마음먹었다. 새로 참여하는 CS 스터디에서 OS 파트를 다루었고, 그 중 세마포어와 뮤텍스에 대해 깊이 있게 공부했기에 이거다! 싶었다. 상호배제 보장 방법 중 운영체제/프로그래밍 언어가 지원하는 방법에는 세마포어 말고도 모니터나 메시지 전달 등의 기법이 있었지만, 학부 수준에서 다루었기에 친숙한 세마포어와 뮤텍스를 중심으로 공부했다. 발표 준비하며 정리한 글 - https://heather-dev.tistory.com/34?category=1020656 Semaphore & Mutex 들어가며 "세마포어와 뮤텍스의 차이점을 말해보세요." 어제까지만 해도 이 질문..

ArrayList가 add를 수행하는 방법
Java 2022. 4. 11. 00:06

들어가며 ArrayList는 어떤 과정으로 add를 수행할까? 교수님께서 X만큼씩 커진다고 하셨던 게 기억나는데, 자세히 기억나지는 않아서 정리해보려고 한다. add에 대해 살펴보려고 하는 만큼, ArrayList에 대해서는 이미 알고 있다고 가정하고 정의나 메서드의 의미 등 기초 내용에 대해서는 설명하지 않는다. 예시 자, 여기 한 ArrayList numbers가 있다. List numbers = new ArrayList(); 질문! numbers에는 몇 개의 값을 넣을 수 있을까? - 용량을 지정하지 않았으므로 기본값인 10이 capacity가 된다. 그럼 값을 추가해보자. for(int i = 0; i 0 || elementData != DEFAULTCAPACITY_EMPTY_ELEMENTDATA..

FNF 제 1회 발표 - 회고편
Presentation 2022. 4. 4. 22:59

들어가며 첫 발표를 마쳤다! 나를 제외하고도 세 분의 발표자가 더 계셨는데, 모두 유익한 발표였다. (NoSQL, CORS, 암호화까지 모두 정말 좋은 주제!) 발표에 대한 피드백 받기까지 일주일이 좀 더 걸렸지만, 받고나니 정말정말정말정말 뿌듯했다. 피드백 내용을 공유하고, 짧은 발표였지만 회고를 적어보려고 한다. 발표준비 준비는 여러 날에 걸쳐 진행했다. 대략 4-5일 정도 소요되었던 듯하다. 프레젠테이션 자료를 작성한 것은 3-4시간 남짓이었지만, 그 전에 책을 읽고 블로그에 정리하며 이해하는 시간까지 모두 발표를 위한 또 내 공부를 위한 과정이었다. 주제는 준비편에서도 적었듯 MySQL의 B-Tree Index! (시간 관계상 블로그에 적은 것만큼 많은 내용을 다루지는 못해서 아쉬움이 남지만 다음..