용감한 쿠키는 평소 사용하는 파일 내 문자열 검색 툴 grep보다 더 빠른 속도를 자랑하는 ack나 ag같은 다양한 툴들이 있다는 것을 들었다.
자신만의 dgrep을 만들어 널리 세상을 이롭게 하고 싶다고 생각하게 된 용감한 쿠키는 그 첫 단계로 멀티스레드로 동작하는 grep을 직접 만들어보기로 결심하였다.
원하는 스펙에 맞는 파일 내 문자열 검색 툴을 만들어보자.
입력 형식
- dgrep {keyword} {relative path}
출력 형식
- 파일의 각 line에 keyword가 있는 경우, 해당 파일과 줄 번호를 출력한다.
조건
1. relative path가 디렉토리인 경우 디렉토리 내 모든 파일에 대해 검사를 진행한다.
2. relative path 내에 또 다른 디렉토리가 존재하는 경우, 각 디렉토리 내 모든 파일에 대한 검사 또한 진행한다.
3. 멀티 스레드를 이용하여 최대한 빠르게 작업을 완료하도록 작성한다.
4. 동일한 파일에 대한 검사 결과는 한 번에 출력되어야 한다.
5. Directory 내 symlink는 없다고 가정한다.
6. 파일들은 모두 UTF8 인코딩으로 작성된 Text파일이라고 가정한다.
====================================================================================
영화 ‘위대한 쇼맨’을 보고 크게 감동을 받은 치즈볼 새는, 쿠키들과 함께 공연을 준비하기로 마음을 먹었다.
매일매일 고된 연습을 강행한 끝에, 공연의 내용은 전부 완성되었고 세계 각국의 전문가들 앞에서 쇼케이스를 펼치게 된다.
결과는 대성공! 치즈볼 새는 자신의 동전 주머니가 가득찰 생각을 하며 행복감에 젖었다.
이윽고 치즈볼 새는 사람들에게 온라인으로 티켓을 팔기 시작했는데,
예매 사이트를 이용하다보니 수수료를 떼이는 것이 불만인 치즈볼 새는 당신에게 예매 API 서버를 만들어달라고 의뢰를 했다.
치즈볼 새의 돈주머니가 가득찰 수 있게 도와주도록 하자.
공연을 만들고 고객이 예매를 하기까지의 흐름은 다음과 같다.
1. 공연을 서버에 등록한다.
2. 예매 시작 시간이 되면 사람들은 빈 좌석 목록을 보고,
3. 원하는 자리를 ‘찜'한다. 다른 사람이 예매했거나 찜한 자리는 찜할 수 없다.
4. 찜한 자리에 대해서 정해진 시간 내에 결제정보를 마저 등록하여 예매를 완료한다
이정도가 경력 1,2년 수준 문제고 풀면 합격할수 있음
자리 찜할 때 동기화 잘해주면 될 것 같은데 고마워 이것도 풀어볼게!! - dc App
첫 문제는 뭐로 해야되지 감이 안오는데
이런거 하면 스켈레톤 코드 같은건 줌?
과제면 시간 얼마나 주는거임? 인터넷 사용 가능임?
회바회인데 보통 제출 데드라인 1주일정도 줌. 인터넷긁어와도 상관없음. 다만 면접까지 가면 코드에대해 설명할 수 있어야됨. 왜 썻고 어떻게 동작하는지 등.
나죽어
아니 생각보다 쉽네 머냐... - dc App