naver campus hackday winter 2017 참가 후기

45
Naver Campus Hackday 참가후기 + Naver 동계 인턴 면접 참가 후기 한영빈 / Youngbin Han / 韩永斌 [email protected]

Upload: youngbin-han

Post on 21-Jan-2018

49 views

Category:

Presentations & Public Speaking


5 download

TRANSCRIPT

Naver�Campus�Hackday�참가후기

+�Naver�동계�인턴�면접�참가�후기�

한영빈�/�Youngbin�Han�/�韩永斌�[email protected]

그게뭐죠?

http://d2.naver.com/news/2656084

왜�갔어요?• 동아리�Slack�#feeds�채널에�핵데이�한다고�뜸.�

• Slack�좀�씁시다�여러분.�

• 학과�워크샵을�갔는데�강연하러�나온�네이버에�막�들어간�선배가�강연�끝에�가보라고�추천을�하심.�

• 그래서�일단�신청함�-�딱히�기대�안함�

• 참가자로�선발됨(!)

선발기준=GitHub

팀�멘토님�:�제가�영빈님�2학년인데�뽑은�이유가...�이거�한번�봐요,�이거�보고�뽑았어요.�

옆에�있던�팀원분�:�와...�저렇게�하기�쉽지�않은데...�(참고로�나머지�팀원은�모두�3~4학년)

주제QR코드로�결제시스템�만들기(알리페이,�위쳇페이�같은...)

어짜다�보니�Android�앱�담당을...

• 팀원0�-�전�서버�선호...�Android�몰라요...�

• 팀원1�-�저도�서버...�Android�모르고�iOS�는�함.�

• 팀원2�-�전�서버,�근데�Android�도�함.�

• 나�-�Android�쪽에�붙어야겠네...

그래서...

• 팀원0�-�서버�

• 팀원1�-�서버�+�iOS�판매자용�앱�작업�

• 팀원2�-�Android�일반�사용자용�앱�작업�

• 나�-�Android�일반�사용자용�앱�작업

현실.

• 팀원0�-�서버�

• 팀원1�-�서버�하시다가�Android�앱�판매자쪽으로...�

• 팀원2�-�Android�사용자�부분�작업�

• 나�-�Android�사용자�부분�작업

사전작업�-�기획

• 판매자�

• 웹으로�구현�:�구매�물품�목록에�대한�QR�코드�보여주기�

• 이용자�

• 앱으로�구현�:�판매자의�QR�스캔해서�결제

사전작업�-�코딩

• Android�쪽만�미리�작업�-�UI�만�미리�부분적으로�작업�

• (비어있는)�메인화면�

• QR�코드�스캔�화면�-�걍�라이브러리�가져다�씀�

• 스캔�결과�처리�

• 결제�완료�화면

첫날

• 네이버�그린팩토리로�모임.�

• 행사�일정�안내,�버스�탑승�안내�

• 버스�타고�춘천에�위치한�네이버�커넥트원�연수원으로�이동�

• 작업�시작

일정

자~�버스�타실꺼구요~�내리셔서�짐�풀으시고,�개발하다가,�먹고,�개발하다가,�밥먹고,�개발하다가,�자고,�개발하다가,�먹고,�개발하다가,�먹고,�개발하다가.........�

자�일정�다른건�보실�필요�없고,�밥�시간만�잘�기억하시면�됩니다.

첫날�작업(내�작업�위주로�설명하자면.)

• 간식�사수�(멘토�:�여러분!�간식이�털리고�있습니다.�사수�하러�갑시다!)�

• 앱�화면�세부�기획�+�작업�

• 결제�기능�-�결제�인증(비밀번호�입력�화면)�추가�

• 구매내역�-�구매�기록,�기록별�상세,�충전/환불�

• 로그인/회원가입�-�이건�다른분이�작업�

• 메인화면�작업�-�다같이�작업�

• 저녁식사,�커넥트원�구경,�배드민턴�치기(본인�포함�팀원�모두가�몸치)

둘쨋날(마지막날)• UI�작업�마무리�

• 앱과�서버�연동�작업�+�추가�UI�작업(충전�화면)�

• QR코드�스캔�처리�구현�작업�

• QR�스캐너�라이브러리�교체�작업�

• 서버�하시던�분�한명�->�앱�판매자�기능�구현�으로�넘어오심�

• 2시쯤�마무리.�각자�작업한�부분에�대해�발표.

숫자는�0부터

Kotlin�Android�Extension• JavaButton�myButton�=�(Button)�findViewById(R.id.button);�

TextView�title�=�(TextView)�findViewById(R.id.title);�

myButton.setOnClickListener(new�View.OnClickListener(){�

@Override�

public�void�onClick(View�v){�

//�Handle�button�click�event�

}�

});

Kotlin�Android�Extension• Java(+lambda�expression)Button�myButton�=�(Button)�findViewById(R.id.button);�

TextView�title�=�(TextView)�findViewById(R.id.title);�

myButton.setOnClickListener((View�v)�->�{�

//�Handle�button�click�event�

}�

);

Kotlin�Android�Extension• Kotlin(+Kotlin�Android�Extension,�lambda)

button.setOnClickListener{�

//�Handle�button�click�event�

}

Data�class

• 데이터만�가지고�메소드는�없는�클래스�만들�때�편리함.

//�Example�

data�class�Contact(val�name:�String,�val�phone:�String)

Threading

• Java

Thread�thread�=�new�Thread(){�

()->{�

//�Handle�background�task�

}�

}�

thread.start();

Threading

• Kotlin

thread{�

//�Handle�background�task�

}

khttp�-�HTTP�without�the�bullshit

import�khttp.get�

fun�main(args:�Array<out�String>)�{�

����//�Get�our�IP�

����println(get("http://httpbin.org/ip").jsonObject.getString("origin"))�

����//�Get�our�IP�in�a�simpler�way�

����println(get("http://icanhazip.com").text)�

}

참가�결과• 우수참가자�선정�• 채용담당자�:�님�네이버

로�면접보러�오세요.�• 본인�:�??????

살다살다�네이버�면접�기회를�얻을�줄이야...문제는�준비를�하나도�

안하고�그냥�감.

여기로�들어가서�기다리시면�됩니다.그리고�그�회의실은�면접실이�되었다.

면접

• 총�2시간(인데�시간�초과해서�실제로는�2시간�반)�

• 면접관�두분이�순서대로�한분씩만�들어와서�한시간씩�진행�

• 핵데이때�한�것,�제출한�서류,�지원한�직무�관련�하여�질문�

• 지원한�직무에�대해�굉장히�깊게�질문함.�

• 면접관�한분마다�손코딩�3~4문제�정도

대충�기억나는�질문�나열

• Final�키워드에�대한�질문�

• Object�클래스에�구현된�메소드�들을�설명해�보세요.�

• StringBuilder,�StringBuffer�의�차이는?�

• 싱글톤�패턴�알아요?�디자인�패턴�아는거�있어요?�

• 멀티스레딩�관련�질문.

대충�기억나는�질문�나열• Android�BroadcastReceiver�를�등록하는�방법은?�

• 답�:�동적으로�등록�또는�메니페스트에�명시하여�등록�

• 둘의�차이는?�메니페스트에�등록하면�편한데�왜�메소드를�호출해서�동적으로�등록할까요?�

• 인텐트�필터가�뭐하는�건가요?�

• Android�에�있는�기본�컴포넌트�유형에�대해서�설명해�보세요.�

• 서비스를�시작하는�방법은?�답�:�그냥�startService()�또는�Activity�에�bindService().�

• 서비스�바인드를�왜�할까요?�액티비티에�붙어서�하는거면�굳이�왜하죠?�

• View�가�어떻게�그려지나요?�ViewGroup�은�어때요?

손코딩• 문자열�뒤집기�-�StringBuilder�를�사용하자�:�왜�StringBuilder�를�사용했어요?�

• 배열에서�중복되는�것만�출력하기�-�HashMap�Key�로�Integer�를�사용하자�:�int�로는�안되나요?�

• 수열의�n�번째�항�구하는�함수�만들기�

• 배열에�있는�항목�정렬하기�

• 정렬�공부를�안해서(...)�그나마�아는�버블�정렬로�작성�하자�:�이거�시간�복잡도가�어떻게�될까요?�

• Android�레퍼런스�문서�인쇄한�것과�Android�View�Tree�그림을�던져주며.�-�View�Tree�의�최대�깊이를�구하는�함수�만들기.�

• 몇게�더�있던�거�같은데�기억이�안남...�

• 면접관�:�음...�저�코드가�제대로�작동할까요?�(휴대전화�카메라로�보드에�쓴�코드를�연속촬영하며)

결과�-�탈락

결론• Naver�Campus�Hackday�정말�좋았음�

• 시설도�좋고,�나오는�음식도�좋고,�숙소도�좋고,�하루종일�코딩하고,�삽질도�해보고,�새로운�것도�배우고...�

• 우수�참가자가�되어�네이버�면접�보는건�상상도�못함.�

• 면접가서�탈탈탈탈�털리고�온건�함정.�

• 탈락�했지만,�면접�본것�만으로도�충분히�좋은�경험이였음.�

• 내가�아직�공부할�것이�한참�많아�남았다는�것을�느낌.�

• 그러니까�너님들도�GitHub[깃허브,�짓허브�아님.]�열씸히�하고...�핵데이�같은것도�가보고�해봐요...�좋음...�포트폴리오거리도�쌓임...