댓글을 보다가 연락하고 싶어도 방법이 없었다는 말을 보고 간단한 소개 남겨봅니다.

 

이메일 : puba5@naver.com

반응형

2017년 배그(배틀그라운드) 열풍이 있었을때, 어떻게하면 배그를 잘 할 수 있을까를 많이 찾아봤었다.

 

간단하게 할 수 있는 게임 내 옵션 설정 같은 게임 시스템을 이용한 설정부터 시작해서,

어떻게하면 프레임 드랍(화면 끊김)이 안 일어나는지, 마우스 감도 조절을 어떻게해야 잘 되는지 등등 많은 방법을 찾아봤다.

 

찾은 방법들은 대부분 더 쾌적한 플레이를 제공해주었지만, 내 게임 내 점수가 올라가며 더욱더 잘하는 상대들을 만나며 미묘한 차이가 승패를 좌우했다.

 

그래서 결국 하드웨어인 마우스 또한 찾아보게 되었다.

여러 pc방을 돌아다니며 플레이해 본 결과, fps(총게임)에서 제일 중요한 것은 마우스라는 것을 느꼈다.

또한 사실 모니터, 키보드도 중요하지만, 그런건 pc방에 들고 다닐 수 없기에, 마우스만 따로 구매해서 pc방에 들고다니며 사용했었다.

 

마우스를 찾아보고 공부하다보니, 게이밍 마우스 뿐만 아니라 사무용 마우스에 대해서도 어느 정도 알게 되었고, 그래서 이렇게 글을 쓰게 되었다.

 

 

게이밍 마우스

먼저 게이밍 마우스에 대해 결론부터 말하면 '로지텍 무선 마우스'이다.

 

일단 pc방 투어를 다니며 마우스를 다 써봤는데, 다른 회사의 마우스는 기대에 정말 못 미쳤다.

 

일단 전용 프로그램이 이상했다. 감도 조절을 하는데, 소프트웨어가 먹통인 경우가 많았다.

무슨 말이냐면, 윈도우 기준으로 윈도우 자체 제공하는 마우스 감도 조절 설정이 있고, 게이밍 마우스 회사마다 제공하는 감도 조절 프로그램이 있다.(물론 모든 회사에서 제공하진 않는다.)

 

그러면 로지텍의 경우 윈도우 감도 설정이 '3'이든 '10'이든 로지텍이 800이면 800의 속도를 내주는데, 다른 회사는 '3' * 800 이렇게 두 개 다 조정해야하는 경우가 많았다. 정확히는 윈도우 감도를 무시한다는데, 무시를 안하는 경우가 많아서 많이 애먹었다.

물론 집에서만 한다면 세팅을 한번 해놓으면 문제 없겠지만, 여러 환경에서 플레이하는 나의 입장에선 그렇지 못했다.

 

그리고 두번째는 개인적인 이유지만, 생각보다 그립감이나 그런 여러 가지가 별로 좋지 못했다. 근데 이건 개인적인 취향이긴한데, 로지텍 g102의 그립감을 이기는 마우스는 별로 보지 못했다.

 

그리고 유선.. 유선도 나쁘지 않은데, 선이 하면 할수록 정말 거슬린다.

이건 진짜 플레이하면 할수록 느낄 것이다.

 

개인적으로 마우스 번지(마우스 선 고정대)가 하나 있으면 유선도 충분할 것 같지만, 번지 가격이 생각보다 만만치 않다.

요즘 무슨 마우스 가격도 많이 내려서 차라리 무선 사는게 나은 것 같다.

 

솔직히 말하면 무선의 단점은 배터리를 계속 사야한다는 점 빼고는 없는 것 같고, 

로지텍의 같은 경우는 내구성(사용을 좀 오래하다보면 더블클릭이 되는 이슈가 있다) 빼고는 정말 잘 만든 제품 같다.

 

구매해서 사용해본 제품

사실 말한대로 여러 제품을 사용해봤지만, 지금 집에서 오랫동안 사용하고 있는 제품은 3가지이다.

g102

  - 국민 게이밍 마우스다. 피시방 가면 아마 대부분 이 친구가 있을 것이다. g pro도 외관은 똑같아서 헷갈릴 수 있다.

  - 손이 작은 사람에게도 어울리고, 가벼워서 롤 같은 게임을 할 때 좋은 것 같다. 개인적으로 제일 마음에 든 마우스이고, 유선 버전을 찾아 헤매다가 g304가 출시해, 바로 구매했다.

  - 유선인 거랑 로지텍 고질적 문제인 더블클릭이 문제이다.

 

g304

  - g102 무선 버젼이다.

  - 사실 g102는 저가형이라 재질도 엄청 고급스럽지는 않다. g304도 마찬가지

  - 하지만 성능 자체는 좋아서 이 마우스를 요즘 계속 사용중이다.

 

g603

  - 얘는 무게도 무겁고, 크기도 크다.

  - 이 친구는 g102, g304와 다르게 고급형이라 가격도 비싸지만, 재질이나 자잘한 디테일이 매우 좋다.

  - 사실 무게는 취향차이지만, 처음에는 매우 적응이 안됐다.

  - 이게 사실 무거우면 마우스의 조그마한 움직임이 중요한 게임에서 좋긴하다. 예를 들면 에임이 중요한 배그라던지..배그라던지

  - 반대로 많이 움직이는 게임, 예를 들면 롤이나 오버워치는 가벼운 마우스가 좋아서 얘는 잘 안 어울리긴한다.

  - 하지만 진리의 케바케이다..필자 같은 경우 이 마우스로 모든 게임을 소화해냈다.

  - 얘의 장점은 건전지로 무게 조절이 가능하다는 점! 건전지가 최대 2개까지 들어가는데, 한개만 넣어도 작동이 되서, 이걸 이용해서 무게 조절이 가능하다.

 

 

 

결론

솔직히 무슨 게임을 하고, 나의 손 크기, 모양이 어떤지에 따라 인생 마우스는 케바케다.

나처럼 피시방 투어를 한번 하든가, 하이마트 같은 곳을 가보든가 해서 만져보는게 최선이겠지만, 그게 아니라면 이런 글들이나 유튜브를 보고 판단하는게 최선인 것 같다.

사실 당근 마켓이 잘 발달된 우리나라에서는 마우스가 좀 싸게 나왔다 싶으면 사보고 좀 써보다가 파는 것도 나쁘지 않은 선택인 것 같다. 

렌탈이라 생각하면 충분한 값을 하는 것 같아서 말이다.

사실 마우스는 출시 주기가 좀 길기 때문에 중고가 방어가 잘 되는 편이다. 사실 다른 게이밍 장비에 비해 그리 비싸진 않지만, 큰 비중을 차지하기 때문에 여기에 좀 투자해서 게임 실력이 부족해서 받는 스트레스를 줄이는 것이 인생 전체로 보면 최고의 투자가 아닐까 싶다.

 

 

 

반응형

잊기 전에 2020년에 본 코딩테스트 느낌을 적어보려한다.

참고로 테케가 없다는 것은 아예 없다는 게 아니라 1-3개의 기본적인 테케만 준다는 것이다.

모든 점수와 평가는 주관적이며 상대적이다.

☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★☆ ★

공채

 

- 라인

알고리즘이나 난이도는 어렵지 않다.

하지만 주어진 시간이 적고 테케도 적어 구현하기가 조금 어렵다.

그리고 가장 큰 어려움은 문제 수는 많은데 시간은 적다.

하지만 문제의 난이도는 어렵지 않은 편이라 풀어볼만 하다.

이상한 알고리즘을 물어보거나, 이상한 테케를 요구하는 억지스러운 문제가 없어서 좋았다.

 

알고리즘 난이도 :  

구현 난이도 :  

테스트케이스 X

종합적 체감 난이도(시간도 고려) 

 

 

- 카카오

그 유명한 카카오 코테.

문제 난이도는 제일 어려웠다. 그리고 깔끔했다.

다른 코테가 사설 모의고사라면 카카오는 수능 같은 느낌.

 

대회처럼 생소한 알고리즘을 요하는 것은 아니라서 좋았다.

대표적인 알고리즘을 숙지하고, 응용할 줄 알아야한다.

그리고 그 문제를 구현하는 것도 어려운 편.

다행인 건 테스트케이스를 많이 준다는 점.

우리나라 IT 기업 공채에서 가장 어려운 코테인 것 같다. 

 

알고리즘 난이도 :  

구현 난이도 :  

테스트케이스 O

체감 난이도(시간도 고려)

 

 

- 네이버

쉽다. 시간도 적다. 하지만 그만큼 쉽다.

네카라 중 제일 쉬운 코테 난이도. 네카라뿐만 아니라 다른 기업과 비교해도 쉬운 편이다.

하지만 시간이 정말 적고 테케가 없어, 시간 조절을 조금 잘못하면 말릴 수 있으니 조심할 것.

문제는 깔끔하다.

 

알고리즘 난이도 :  

구현 난이도 :  

테스트케이스 X

체감 난이도(시간도 고려) 

 

 

- 쿠팡

문제 자체는 어렵지 않았다.

요하는 알고리즘도 어려운 편은 아니었다.

시간도 부족하지 않았다.

하지만 문제 규모가 좀 있고, 테스트케이스를 주지 않아 꼼꼼함을 요구하는 느낌이었다.

문제 규모가 있기 때문에 테케를 꼼꼼히 살펴봐야한다.

하지만 규모가 있는 것 치고 더럽지 않았다.

네이버 매운맛 느낌이었다.

 

알고리즘 난이도 :  

구현 난이도 :  

테스트케이스 X

체감 난이도(시간도 고려) 

 

- 11번가

문제도 쉽고 시간도 많이준다.

테케를 안주지만, 의미 없을 정도로 쉽다.

사실 IT 기업 코테만 봐서, 상대적으로 많이 쉬웠던 걸 수도 있다.

 

알고리즘 난이도 :  

구현 난이도 :  

테스트케이스 X

체감 난이도(시간도 고려) 

 

 

- NHN

알고리즘은 쉽다. 다만 예외가 많아 구현이 힘들다.

소위 말하는 좀 구현이 까다로운 문제인 것 같다.

삼성 코테를 보지 않아 정확히는 모르지만, 이야기만 들으면 삼성 같은 느낌 같다.

언어 제한이 있어서 그 점이 힘들었다.

 

문제 내신 분이 백준 문제 좋아하는 느낌...

시간은 충분했던 것 같다.

 

알고리즘 난이도 :  

구현 난이도 :  

테스트케이스 X

체감 난이도(시간도 고려) 

 

 

공채 코테 전체적인 평

비유하자면, 카카오는 불수능, 라인은 물수능 느낌. NHN은 어려운 사설 모의고사 문제 느낌이고, 쿠팡은 좀 어려운 교육청 모의고사, 네이버는 쉬운 교육청 모의고사 느낌이었다.

 

대회 같은 곳에선 생소한 알고리즘도 가끔 나오는데, 다행히 기업 코테에서는 그런 알고리즘이 안나와서 좋았던 것 같다.

 

물론 다 개인적인 의견이다. 문제를 내신 분이 당연히 나보다 더 알고리즘을 잘 아실테고,

문제를 내실 때다 의도가 있기 때문에 테케가 빡빡하거나, 문제의 규모를 크게 내거나, 생소한 알고리즘 문제를 내셨을테니까.

이것들을 감히 내가 평가할 수는 없다고 생각한다.

 

그래서 그냥 이 글은 개인적인 의견으로만 봐주셨으면 한다.

그리고 이런 느낌이구나하고 느낌만 가져가서 준비에 도움이 되었으면 한다.

 

개인적인 난이도는 카카오 > 라인 >> NHN = 쿠팡 >> 네이버 >> 11번가였다.

 

문제는 아마 프로그래머스나 백준 같은 곳에 있을 수도 있으니 한 번 찾아보는 것도 좋을 것 같다.

반응형

5개월의 부스트캠프 과정이 끝났다.

 

작년의 내가 2019 부스트캠프 글들을 보며 할까말까 고민하였는데, 아마 내년 여름쯤 이 글을 보며 2021 부스트캠프 지원할까말까 고민하겠지..

 

길다면 길고, 짧다면 짧은 기간이었다.

 

반팔을 입어도 더운 한여름에 시작했고, 롱패딩을 입어도 추운 한겨울에 끝났으니 말이다.

 

이 글을 읽는 사람은 자신이 한 부스트캠프를 회고하며 추억을 감상하려 읽는 사람도 있을 것이고,

 

부스트캠프가 어떤 것인지, 지원할건지 말건지 고민하시는 분이 읽을 것이다.

 

나는 지원 여부를 고민하는 사람을 대상으로 이 글을 풀어나가려고한다.

 

먼저 부스트캠프에 대하여 소개하자면, 네이버 커넥트 재단에서 진행을 하는 프로그램이고, 5개월 동안 웹 풀스택 과정을 JS로 익힌다. 

물론 올해에는 iOS도 있고, 매해마다 종목?은 다른 것 같다.

 

나는 웹을 하고 싶어 웹풀스택을 지원했고, 1번의 자소서와 2번의 코테를 통과하여 부스트 캠프 챌린지를 시작하게 되었다.

 

부스트캠프는 챌린지 과정과 멤버쉽 과정이 있는데,

챌린지는 하루하루 간단한 미션이 주어지는 과정이고, 멤버쉽은 주 단위의 긴 흐름을 가져가는 프로젝트를 진행하는 과정이다.

 

따라서 챌린지에는 좀 더 얕고 넓은 지식을 배울 수 있고, 멤버쉽에서는 좀 더 깊은 지식을 배울 수 있었다.

 

내 경험상으로 말해주자면, 만약 자신이 플젝은 좀 해봤지만,

플젝을 하면서 느끼는 '돌아는 가는데 왜 돌아가는지 모르겠다' 혹은 'CS가 왜 중요한지 모르겠다'라는 생각이 들고, 이 궁금증을 해결해보고 싶다면 정말 강추다.

특히 챌린지 과정이 많이 도움이 될 것이다.

 

플젝을 많이 진행하고, 학교에서 과제를 하며 막히기는 했지만 성공을 했지만, 그 근본적인 지식을 잘 알지 못하였다.

물론 근본적인 지식을 공부를 하고, 궁금증을 해결하기 위하여, 구글링을 하고, 야크 털을 깎았지만, 과연 이렇게하는게 맞을지?라는 의문이 많이 들었었다.

 

강의를 들으면 오히려 물음이 더 생겼고, 공식 문서에는 모르는 내용이 한가득이었고, 블로그를 읽으면서 이게 정말 맞는걸까라는 의문을 수도없이 가졌다.

 

이 해답을 부스트캠프 챌린지 과정에서 얻었다.

여기서는 정해진 답을 알려주지 않는다. 다만 학습하는 법을 알려준다.

새로운 얕고 넓은 개념을 하루하루 던져주며, 이것을 학습하고, 과제를 해결한다.

 

이 과정을 팀원들과 함께 하고, 마스터(멘토라고 생각하면 편하다)의 강의를 통하여 내가 가장 크게 얻은 것은

 

야크 털 깎기나 공식 문서를 보는 등 지금까지 내가 가려는 길의 방향은 맞았다는 것을 알게 된 것이다.

그리고 이를 더 빠르게 가는 방법과, 그리고 계속해서 방향을 잃지 않는 법을 배웠다.

 

한마디로 요약하자면, 뭔가 열심히는 하고 있는데, 내가 가는 방향이 맞는가 의심스럽다면 챌린지를 들어라! 

 

그리고 멤버쉽은 그 깨닳음을 다지는 시간이었다.

어떤 것이 중요하고, 어떤 방향으로 나아가야할지 알았다면, 이제 그 방향으로 나아가는 과정이 멤버쉽이라고 생각한다.

 

사실 챌린지가 끝나고 많이 고민했었다.

챌린지 과정을 통해 내가 원하던 답을 찾았고, 이제는 좀 더 해보고 싶은 것들을 하거나, 취업을 빠르게 하고 싶었기 때문이다.

 

스타트업에 들어가든가 한번 스타트업을 차려보든가, 아니면 해보고 싶었던 토이플젝을 할까.

정말정말 많이 고민을 했었다.

 

학생이라는 신분에서 스타트업에 도전을 해보고 싶었고, 학생이라는 신분에서 할 수 있는 토이플젝을 해보고 싶었다.

 

하지만 스타트업은 하지 말라던 사회생활을 좀 했던 친구의 조언과 내공을 기르라던 교수님의 조언이 떠올라

고민 끝에 나는 멤버쉽 과정을 진행하였다. 

 

그리고 사실 코로나 시대에 취업이 안된다, 안된다는 주변의 말들이 많았고, 부스트캠프 과정이 끝난 후 취업 연계를 해준다는 이 2가지 정보 또한 나를 흔들리게 했던 것 같다.

사실 부스트캠프 채용 연계가 아니더라도 챌린지에서 얻은 깨닳음으로 다른 곳에서라도 열심히하면 취업은 잘 할 것 같았는데, 주변의 걱정이 심했다...

그 놈의 코로나...그 놈의 취업...

 

 

개인적으로 플젝 경험이 많지 않다면 멤버쉽 과정을 강추하고, 플젝 경험이 있더라도 멤버쉽 과정을 추천한다.

 

개발에 열정이 있는 사람들과 조금은 특별한? 프로젝트 경험을 쌓을 기회는 없을테니까

물론 마지막 플젝 이외에는 포폴에는 사용할 수 없는 플젝들이었다 ㅎㅎ

 

하지만 팀원들과 협업하고 지식 공유를 하는 경험은 정말 많은 도움이 된 것 같다.

 

개인적으로 이미 플젝은 많이 해보았다? 생각을 하여 나는 구현보다는 학습에 치중을 두어서 많은 구현은 하지 않았다.

아마 플젝을 많이 해본 분들은 비슷한? 구현을 하는 기분이라 그렇게 신박한 경험은 아닐 것이다. 물론 얻어갈 것이 없다는 말이 절대절대 아니다. 

 

상대적으로 플젝 경험이 없는 사람보다는 덜 유익할 것이고, 플젝 경험이 많이 없는 사람에게는 정말 정말 이 과정을 추천한다.

 

개인적으로? 감히 말해보자면 이미 플젝을 많이 해보았고, 앞으로 좋은 플젝 기회가 많은 분들은 멤버쉽이 아니라 다른 플젝을 하셔도 괜찮을 것 같다. 예를 들면 인턴 기회가 있다든가, 정말 좋은 팀원들과 토이 플젝을 할 기회나, 스타트업 같은걸 해볼 생각이 있다든가 하는 말이다. 

 

하지만 그런게 아니라면 혹은 그렇다하더라도 부스트캠프 멤버쉽은 정말 정말 성장하기 좋은 기회일 것이다.

그리고 개발에 열정이 있는 좋은 동료들을 만날 정말 좋은 기회이다.

 

나에게 운이 좋게도 부스트캠프라는 기회가 주어져서 정말 좋았고, 다시 돌아간다해도 주저없이 부스트캠프를 선택하지 않을까 싶다.

 

다만 아쉬운 점은 올해 온라인으로 진행되었다는 점이...많이 아쉽다...

 

그리고 마지막으로 한마디만 더 말하자면 부스트캠프가 쉽고 편한 만능의 길이라 생각이 들겠지만,

그리 편한 길은 아니다. 부스트캠프 기간, 특히 챌린지 기간 동안은 정말 많이 불태웠던 것 같다...

하지만 힘든만큼 얻어가는 것 또한 많은 것 같다.

개발과 개발 외적으로...

반응형

'일기 혹은 일지 > 잡담' 카테고리의 다른 글

신기한 이벤트  (0) 2024.11.09
내 토마토 꽃 피다  (0) 2024.11.07

코딩테스트 후기라는 분류에는 어울리지 않지만, 당분간 이제 코딩테스트를 보지 않을 것 같아, 2020 하반기 공채 후기라는 글로 그 빈자리를 메꾸려고한다.

 

결론부터 말하면, 원래부터 가고 싶었던 기업에 취업을 하게 되었다.

 

2020 하반기 공채 시즌에는 별 일이 다 있었던 것 같다.

 

졸업반이 되어 처음으로 지원하는 공채들이었고, 사실 공채로 취업을 할 수 있을 것이라는 생각은 하지 못했다. 

 

그 이유는 그 당시, 네이버커넥트 재단에서 진행하는 부스트캠프라는 교육을 받느라, 면접이나 코딩테스트 준비를 하지 못했다. ( 물론 아직도 교육은 진행 중이다. )

 

그리고 이 교육이 끝난 후 취업 연계를 해준다고 하여, 이 부분만 믿고, 공채에 대한 준비는 하지 않았다. 

 

교육을 받느라 24시간이 모자랐기에, '코딩테스트에 대한 감을 잃지 않고, 혹시 취업 연계가 실패하여 내년에 공채를 볼 수도 있으니 경험 삼아 코테나 보자!' 라는 생각으로 가고 싶었던 기업, 소위 말하는 네카라에만 지원서를 던졌었다.

 

그렇기에 새로운 도전을 해보았는데, '내 새로운 주 개발언어인 JS로 코딩테스트를 진행해보자'라는 생각으로 모든 코테를 JS로 보았다. 물론 어쩔 수 없는 경우에는 C++을 사용했지만...

 

그렇기에 JS에 존재하는 문법이나 자료구조를 검색하고, 또 이에 대한 시간 복잡도 ( 예를 들면 JS Object 탐색의 시간 복잡도는 몇인가? )를 찾아보며 문제를 풀어 평소 기량만큼 문제를 풀 지 못했었고, 이 때문에 코딩테스트를 통과하지 못할 것이라 생각하였다.

 

하지만 운이 좋았는지 네카라 세 기업의 코딩테스트들을 모두 통과해 면접의 기회가 주어졌고, 면접도 후다닥 준비하여 좋은 결과를 만들어냈다. 

 

면접은 보통 전날이나 주말에 하루이틀 정도 준비했는데, 시간이 부족하여 완벽하게 준비하지는 못한 점이 조금 아쉽긴 했다.

 

사실 시간이 2배, 3배 많다고 2배, 3배 더 완벽히 준비할 수 없으니 최고의 효율?을 발휘해 준비한 것 같다.

 

지금이야 결과가 좋아 모든게 아름답게 보이지만, 사실 그 준비하는 당시에는 많이 힘들었다.

 

주말이나 교육 퇴근? 시간 후에 원래 교육 받은 내용을 정리하고, 공부하고 싶었던 내용들을 공부했었는데, 매주 주말마다 코테 한 개 이상을 봤고, 면접 준비를 해야했고, 자소서를 작성해야했기 때문이다.

 

두 마리의 토끼를 잡고 싶었지만, 어느 하나에도 집중하지 못해 모든 걸 놓치지 않을까 전전긍긍했다.

 

그리고 이 기업들의 지원에 대한 결과가 좋아 욕심이 생겨 다른 기업들도 지원해보았고, 이 때문에 시간이 더더욱 부족해졌다.

 

육체적으로, 그리고 정신적으로 힘들었지만, 그래도 엄청 재밌는 경험이었다.

 

오디션 프로그램에 나가 1차, 2차, 3차 이렇게 통과하는 느낌이었다.

 

코테에서, 면접에서, '아 그땐 그렇게할껄, 그렇게 말할껄'이라는 후회도 했지만,

1년 아니 6개월 전이라면 알지 못했었던 내용들을 면접에서 대답하고, 또 학교를 다니며 빠져서 공부했던 내용을 신나서 대답하는 나의 모습을 보는 것도 재미있었다.

 

그리고 코테와 면접을 준비하며 학교 공부를 다시하며, 배울 때는 놓쳤던 부분들을 다시 공부하는 것도 재미있었다.

 

그 때 당시에 이해가 가지 않았던 부분들과, 왜 배우는지 몰랐던 부분들을 공부하며, '아 이래서 CS, CS 하는구나'라는 것을 느꼈고, 웹 공부를 더 일찍 시작했다면 학교 수업에서 더 많은 것을 느낄 수 있지 않았을까라는 아쉬움이 많이 남았다.

 

하지만 반대로 학교 수업을 열심히 듣고, 과제를 열심히 하며, 학점을 위한 공부가 아니라 지식을 위한 공부를 하고, 전공을 다채롭게 듣고, 친구나 후배에게 내가 아는 내용들을 설명하며 살아왔던 나의 나날들은 헛되지 않았음을 알 수 있었다.

 

물론 나의 부족한 부분들도 많이 느꼈고, 내가 소홀히했던 과목들은 나의 약점이 되서 돌아왔다.

 

만약 1학년, 혹은 2학년의 나에게 한마디를 해줄 수 있다면, '취업에 너무 목매달아 취업을 위한 공부들은 잠시 내려놓고 너가 하고 싶은 일을 해!'라고 말해주고 싶고,

 

3학년, 4학년의 나에게는 '너가 가는 길이 맞으니까 걱정말고 나아가!'라고 해주고 싶다.

 

사실 이제부터 진짜 시작이고, 앞으로의 미래가 더 설레고 걱정되긴 한다 ㅎㅎ

반응형

이 글의 시작은 매우 간단했다. JavaScript로 문제를 코딩테스트 풀다가, Map이라는 자료구조를 사용할 일이 생겼다.

 

복잡한? 기능들을 사용하기는 귀찮아서 Object로 문제를 해결하려했는데, 그럼 시간 복잡도에 문제가 없을까?라는 생각이 들었다.

 

Stackoverflow에서 찾아보니, Object도 hash로 이루어져있어서 find에 O(1)의 시간 복잡도를 가진단다.

 

stackoverflow.com/questions/12241676/javascript-objects-as-hashes-is-the-complexity-greater-than-o1

 

JavaScript Objects as Hashes? Is the complexity greater than O(1)?

For some algorithm I was writing recently I thought that a hash would be excellent. I thought that I could probably just use the member variables in an object as key value pairs. I am not sure if t...

stackoverflow.com

 

여기서 의문이 시작됐다. JavaScript에서 Object와 Map은 어떻게 이루어져있을까?? 물론 인터프리터, 컴파일러, 엔진에 따라 다르겠지만,내가 자주 쓰는 Node를 기준으로 어떻게 되어있는지 궁금했다. 이에 대해 개인 Notion에 러프하게 정리했었는데, 블로그에 깔끔히 정리해보려한다.

 

Map과 HashMap

먼저 Map과 HashMap에 대하여 알고 있어야 이해하기가 편할 것 같다.

 

HashMap = unordered Map

  • HashMap은 key 와 value 를 hash 알고리즘에 의해 구현

  • Hash 알고리즘으로 넣으므로 전체가 어떤 특정한 규칙으로 정렬이 되어 있지 않다.
  • hash_map은 find에 이상적으로 O(1)의 시간을 소요한다.

  • 하지만 hash_map은 실제로는 hash table의 크기에 반비례하는 O(n)의 시간을 소요한다.

    • 예를 들어 1000개 저장하는데, 테이블 크기가 100이라면, 시간은 10만큼 걸릴 것이다.

Map ( Tree Map ), Ordered Map

  • Map( Tree Map)은 보통 red-black tree 알고리즘을 이용하여 구현

  • Tree의 규칙대로 들어가므로, Order되어 있다, 즉 정렬되어 있다.
  • Map( Tree Map )을 쓰는 경우, 최악의 경우 O(n), 최상의 경우 O(logn)의 시간복잡도

    • 이진 트리의 원리에 따라 일렬로 이루어졌을 경우 O(n)이 걸리고,
    • 균등하게 나누어져 있다면 O(logN)이 걸릴 것이다.
반응형

아마 올해 보는 마지막 코테가 아닐까 싶다 ㅎㅎ..

 

본 것은 저번주 토요일날(21일) 봤는데, 이제 복기할 이유도 없어서, 바로 후기를 쓰지 않고 후기를 남긴다.

 

구체적으로 적기는 좀 그렇고, 그냥 학교 공부 열심히 했냐 안했냐 그런 기준이었다.

 

NHN 인재상은 정말 학교 공부를 열심히 했냐인 것 같다.

 

코테도 언어 제한을 보면 C++, JAVA, C인 것을 보면.....

 

어떤 식으로 나오는지 궁금해서 봤지만...코테에 대하여 구체적으로 적기 좀 그래서 여기까지 적는다....

반응형

코딩 테스트는 어제 보았지만( 현재는 새벽이므로.. ) 24시간이 지나기 전에 후기를 남겨본다.

 

뭔가 오늘 피곤하여서? 코테보고 저녁을 먹고 잠들었는데, 일어나보니 늦은 시간이 되어 부랴부랴 회의에 참석하고 할 일들을 하다보니 이제야 생각나서 작성하게 된다.

 

여담이지만 컨디션 관리가 중요한 것 같다. 개발자들이 늦게 잔다고 하지만, 사실 일찍 자고 일찍 일어나는게 수면 리듬 상 좋다고 해서, 좀 관리를 해야겠다.

 

본론으로 가자면 문제 자체는 어렵지 않았다.

 

구름? 이라는 플랫폼을 사용하고 문제는 3문제에 2시간이었다.

 

삼성 같은 대기업에서는 알고리즘은 어렵지 않고, 반례와 예외 처리를 중요시하는 구현 문제가 나온다고 했는데, 그 느낌을 알 것 같은 문제들이었다.

 

다른 글들을 읽어보셨으면 알겠지만, JS로 거의 모든 코테를 보고 있었는데 NHN은 C++을 사용한다고 하여, 사실 약간은 걱정했다.

 

C++이 과거의 주 언어였긴 하나, 사용하지 않은지 거의 반년 가까이 되어 기억이 가물가물하기 때문이다..

 

그리고 우려는 현실이 되었다.

 

기억이 가물가물해서 C++의 기능들을 다시 찾아보면서 코테를 보았고, 오류가 은근 많이 발생했고, 오랜만에 쓰는 CLion은 익숙하지 않았다.

 

하지만 다행히 3문제 중 2문제는 풀었고, 3번째 문제도 시간이 부족해서 풀지 못하였지, 시간이 있었다면 다 풀 수 있었을 것 같다.

 

컨디션이 오늘 좋지 않아, 멍 때리면서 풀고, 그리고 익숙하지 않아진 C++로 푸니 시간이 더 걸려서 모든 문제를 못 푼 것 같다.

 

그리고 생각보다 반례와 예외가 많이 나올 것 같은데 고려를 제대로 해주었는지도 많이 걱정이 되긴 한다.

 

반대로 그렇기 때문에 2문제를 완벽히 풀었다면 무난하게 통과할 것 같기도한데.. 사실 결과는 모르겠다. 

 

테스트 케이스가 2개 밖에 주어지지 않아서 많이 걱정이 된다.

 

코드는 JS로 풀 때처럼 모듈화를 잘 하지 못하였지만, 주석 처리를하고, 단계별로 코드를 나누니 보고 디버깅하기엔 그리 나쁘지는 않았다.

 

특히 이렇게 복잡한 문제를 풀 때는 주석처리를 하면서 

// 1. ㅇㅇ하는 경우

// 1 - 1 ㅇㅇ하는 경우

 

이런 식으로 케이스를 나누니 보기 편하고 디버깅도 잘 되었다. 

 

어려운 구현이 나온다면 이런 방식을 활용해봐야겠다.

 

언제나 그렇듯 좀 아쉽긴한데, 컨디션이 좋지 않아 몽롱하여 코테를 본건지 안본건지 잘 모르겠다.

 

그리고 C++ 예시 출력으로 답을 출력한 후에 줄바꿈을 해주어야하는지, 아닌지도 잘 모르겠다.

 

모르겠다... 사실 다른 것들이 너무 바쁘고 면접 준비나 진로 결정, 졸업 준비 등등 요즘 신경 쓸 것이 많아서 이번 코테는 어떻게든 되겠지 싶은 마인드다..

반응형

+ Recent posts