SlideShare a Scribd company logo
1 of 45
Download to read offline
Naver Campus Hackday
참가후기
+ Naver 동계 인턴 면접 참가 후기
한영빈 / Youngbin Han / 韩永斌
sukso96100@gmail.com
그게뭐죠?
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
• Java
Button 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[깃허브, 짓허브 아님.] 열씸히 하고... 핵데이 같은것도 가보고
해봐요... 좋음... 포트폴리오거리도 쌓임...

More Related Content

What's hot

개발자 이승우 이력서 (2016)
개발자 이승우 이력서 (2016)개발자 이승우 이력서 (2016)
개발자 이승우 이력서 (2016)SeungWoo Lee
 
개발자를 꿈꿨던, 꿈꾸는 개발자를 위한 개발하고 싶은 이야기
개발자를 꿈꿨던, 꿈꾸는 개발자를 위한 개발하고 싶은 이야기개발자를 꿈꿨던, 꿈꾸는 개발자를 위한 개발하고 싶은 이야기
개발자를 꿈꿨던, 꿈꾸는 개발자를 위한 개발하고 싶은 이야기Eunhyang Kim
 
9x년생 개발자 모임 3회 발표
9x년생 개발자 모임 3회 발표9x년생 개발자 모임 3회 발표
9x년생 개발자 모임 3회 발표Bo Min Lee
 
Java script PPT #1 : 개요.
Java script PPT #1 : 개요.Java script PPT #1 : 개요.
Java script PPT #1 : 개요.Hong Jin Baek
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OTMinGeun Park
 
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활NAVER Engineering
 
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법NAVER Engineering
 
Django의 배신(주니어 개발자의 Django 삽질기)
Django의 배신(주니어 개발자의 Django 삽질기)Django의 배신(주니어 개발자의 Django 삽질기)
Django의 배신(주니어 개발자의 Django 삽질기)Eunhyang Kim
 
Infra Engineer에서 Frontend Engineer가 되기까지
Infra Engineer에서 Frontend Engineer가 되기까지Infra Engineer에서 Frontend Engineer가 되기까지
Infra Engineer에서 Frontend Engineer가 되기까지Kyeongmo Noh
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
라면공장패턴
라면공장패턴라면공장패턴
라면공장패턴Darion Kim
 
생활코딩 티셔츠 공구기
생활코딩 티셔츠 공구기생활코딩 티셔츠 공구기
생활코딩 티셔츠 공구기mecagun
 

What's hot (14)

개발자 이승우 이력서 (2016)
개발자 이승우 이력서 (2016)개발자 이승우 이력서 (2016)
개발자 이승우 이력서 (2016)
 
개발자를 꿈꿨던, 꿈꾸는 개발자를 위한 개발하고 싶은 이야기
개발자를 꿈꿨던, 꿈꾸는 개발자를 위한 개발하고 싶은 이야기개발자를 꿈꿨던, 꿈꾸는 개발자를 위한 개발하고 싶은 이야기
개발자를 꿈꿨던, 꿈꾸는 개발자를 위한 개발하고 싶은 이야기
 
9x년생 개발자 모임 3회 발표
9x년생 개발자 모임 3회 발표9x년생 개발자 모임 3회 발표
9x년생 개발자 모임 3회 발표
 
Work at home
Work at homeWork at home
Work at home
 
Java script PPT #1 : 개요.
Java script PPT #1 : 개요.Java script PPT #1 : 개요.
Java script PPT #1 : 개요.
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT
 
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
200819 NAVER TECH CONCERT 08_성능을 고민하는 슬기로운 개발자 생활
 
jQuery 구조와 기능
jQuery 구조와 기능jQuery 구조와 기능
jQuery 구조와 기능
 
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
200820 NAVER TECH CONCERT 13_네이버에서 오픈 소스 개발을 통해 성장하는 방법
 
Django의 배신(주니어 개발자의 Django 삽질기)
Django의 배신(주니어 개발자의 Django 삽질기)Django의 배신(주니어 개발자의 Django 삽질기)
Django의 배신(주니어 개발자의 Django 삽질기)
 
Infra Engineer에서 Frontend Engineer가 되기까지
Infra Engineer에서 Frontend Engineer가 되기까지Infra Engineer에서 Frontend Engineer가 되기까지
Infra Engineer에서 Frontend Engineer가 되기까지
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
라면공장패턴
라면공장패턴라면공장패턴
라면공장패턴
 
생활코딩 티셔츠 공구기
생활코딩 티셔츠 공구기생활코딩 티셔츠 공구기
생활코딩 티셔츠 공구기
 

Similar to Naver Campus Hackday Winter 2017 참가 후기

커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님NAVER D2
 
프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들Lee Geonhee
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향Eunhyang Kim
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your WayChris Ohk
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
코드리뷰 짝 매칭 프로그램 구현기
코드리뷰 짝 매칭 프로그램 구현기코드리뷰 짝 매칭 프로그램 구현기
코드리뷰 짝 매칭 프로그램 구현기Yong Hoon Kim
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA Terry Cho
 
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며NAVER Engineering
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리Gyuwon Yi
 
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화ByungJoon Lee
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍QooJuice
 
임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011devCAT Studio, NEXON
 
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기2015 SW마에스트로 100+ 컨퍼런스
 
나의 8년 (2012~2019)
나의 8년 (2012~2019)나의 8년 (2012~2019)
나의 8년 (2012~2019)Yungon Park
 
Docker registry swift_junojunho
Docker registry swift_junojunhoDocker registry swift_junojunho
Docker registry swift_junojunhoJunho Kim
 
이제 막 웹개발자 되고싶은 분들께
이제 막 웹개발자 되고싶은 분들께이제 막 웹개발자 되고싶은 분들께
이제 막 웹개발자 되고싶은 분들께지수 윤
 
MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)InBum Kim
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스Hee Jae Lee
 

Similar to Naver Campus Hackday Winter 2017 참가 후기 (20)

커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님커뮤니티와 함께한 예비개발자 성장기- 조성수님
커뮤니티와 함께한 예비개발자 성장기- 조성수님
 
프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향스타트업 인턴 개발자 3달간의 고군분투기 김은향
스타트업 인턴 개발자 3달간의 고군분투기 김은향
 
My Way, Your Way
My Way, Your WayMy Way, Your Way
My Way, Your Way
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
Open Jig Ware
Open Jig WareOpen Jig Ware
Open Jig Ware
 
코드리뷰 짝 매칭 프로그램 구현기
코드리뷰 짝 매칭 프로그램 구현기코드리뷰 짝 매칭 프로그램 구현기
코드리뷰 짝 매칭 프로그램 구현기
 
애자일 스크럼과 JIRA
애자일 스크럼과 JIRA 애자일 스크럼과 JIRA
애자일 스크럼과 JIRA
 
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
200820 NAVER TECH CONCERT 12_상반기 네이버 인턴을 돌아보며
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
NDC 2013 Monkeyrunner를 이용한 모바일 테스트 자동화
 
함수형 프로그래밍
함수형 프로그래밍함수형 프로그래밍
함수형 프로그래밍
 
임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011임태현, 서버점검 제로에의 도전, NDC2011
임태현, 서버점검 제로에의 도전, NDC2011
 
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
2015 SW마에스트로 100+ 컨퍼런스_오픈스택 Swift로 시작하는 오픈소스 분석 삽질기
 
나의 8년 (2012~2019)
나의 8년 (2012~2019)나의 8년 (2012~2019)
나의 8년 (2012~2019)
 
Docker registry swift_junojunho
Docker registry swift_junojunhoDocker registry swift_junojunho
Docker registry swift_junojunho
 
이제 막 웹개발자 되고싶은 분들께
이제 막 웹개발자 되고싶은 분들께이제 막 웹개발자 되고싶은 분들께
이제 막 웹개발자 되고싶은 분들께
 
MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)MongoDB in use(김인범, mongodb korea)
MongoDB in use(김인범, mongodb korea)
 
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
[오픈소스컨설팅]Session 6. scrum과 jira 기반의 소프트웨어 개발 프로세스
 

More from Youngbin Han

Ubucon Europe and Asia
Ubucon Europe and AsiaUbucon Europe and Asia
Ubucon Europe and AsiaYoungbin Han
 
우분투 아시아 컨퍼런스 바닥에서 시작하기
우분투 아시아 컨퍼런스 바닥에서 시작하기우분투 아시아 컨퍼런스 바닥에서 시작하기
우분투 아시아 컨퍼런스 바닥에서 시작하기Youngbin Han
 
Automating boring and repetitive UbuCon Asia video and subtitle stuffs
Automating boring and repetitive UbuCon Asia video and subtitle stuffsAutomating boring and repetitive UbuCon Asia video and subtitle stuffs
Automating boring and repetitive UbuCon Asia video and subtitle stuffsYoungbin Han
 
Engaging new l10n contributors through Open Source Contributhon
Engaging new l10n contributors through Open Source ContributhonEngaging new l10n contributors through Open Source Contributhon
Engaging new l10n contributors through Open Source ContributhonYoungbin Han
 
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)Youngbin Han
 
What's new in Ubuntu 18.04 LTS
What's new in Ubuntu 18.04 LTSWhat's new in Ubuntu 18.04 LTS
What's new in Ubuntu 18.04 LTSYoungbin Han
 
우분투한국커뮤니티 2017년 활동보고
우분투한국커뮤니티 2017년 활동보고우분투한국커뮤니티 2017년 활동보고
우분투한국커뮤니티 2017년 활동보고Youngbin Han
 
FluxSync Team 중간보고
FluxSync Team 중간보고FluxSync Team 중간보고
FluxSync Team 중간보고Youngbin Han
 
openSUSE.Asia Summit 2017 Tokyo 참관후기
openSUSE.Asia Summit 2017 Tokyo 참관후기openSUSE.Asia Summit 2017 Tokyo 참관후기
openSUSE.Asia Summit 2017 Tokyo 참관후기Youngbin Han
 
How & Why we have connected Slack & IRC
How & Why we have connected Slack & IRCHow & Why we have connected Slack & IRC
How & Why we have connected Slack & IRCYoungbin Han
 
SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)Youngbin Han
 
SKHUFEEDS 소개 발표자료
SKHUFEEDS 소개 발표자료SKHUFEEDS 소개 발표자료
SKHUFEEDS 소개 발표자료Youngbin Han
 
Snaps on Ubuntu Desktop
Snaps on Ubuntu DesktopSnaps on Ubuntu Desktop
Snaps on Ubuntu DesktopYoungbin Han
 
How and why we have integrated Slack and IRC
How and why we have integrated Slack and IRCHow and why we have integrated Slack and IRC
How and why we have integrated Slack and IRCYoungbin Han
 
Ubuntu's Unity - Birth to Death(in 5minutes)
Ubuntu's Unity - Birth to Death(in 5minutes)Ubuntu's Unity - Birth to Death(in 5minutes)
Ubuntu's Unity - Birth to Death(in 5minutes)Youngbin Han
 
Jekyll and GitHub Pages
Jekyll and GitHub PagesJekyll and GitHub Pages
Jekyll and GitHub PagesYoungbin Han
 
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Youngbin Han
 
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기Youngbin Han
 
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기Youngbin Han
 
Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기Youngbin Han
 

More from Youngbin Han (20)

Ubucon Europe and Asia
Ubucon Europe and AsiaUbucon Europe and Asia
Ubucon Europe and Asia
 
우분투 아시아 컨퍼런스 바닥에서 시작하기
우분투 아시아 컨퍼런스 바닥에서 시작하기우분투 아시아 컨퍼런스 바닥에서 시작하기
우분투 아시아 컨퍼런스 바닥에서 시작하기
 
Automating boring and repetitive UbuCon Asia video and subtitle stuffs
Automating boring and repetitive UbuCon Asia video and subtitle stuffsAutomating boring and repetitive UbuCon Asia video and subtitle stuffs
Automating boring and repetitive UbuCon Asia video and subtitle stuffs
 
Engaging new l10n contributors through Open Source Contributhon
Engaging new l10n contributors through Open Source ContributhonEngaging new l10n contributors through Open Source Contributhon
Engaging new l10n contributors through Open Source Contributhon
 
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)
Introduction to Hanjp-IM Project (DebConf18 - Hsinchu, Taiwan)
 
What's new in Ubuntu 18.04 LTS
What's new in Ubuntu 18.04 LTSWhat's new in Ubuntu 18.04 LTS
What's new in Ubuntu 18.04 LTS
 
우분투한국커뮤니티 2017년 활동보고
우분투한국커뮤니티 2017년 활동보고우분투한국커뮤니티 2017년 활동보고
우분투한국커뮤니티 2017년 활동보고
 
FluxSync Team 중간보고
FluxSync Team 중간보고FluxSync Team 중간보고
FluxSync Team 중간보고
 
openSUSE.Asia Summit 2017 Tokyo 참관후기
openSUSE.Asia Summit 2017 Tokyo 참관후기openSUSE.Asia Summit 2017 Tokyo 참관후기
openSUSE.Asia Summit 2017 Tokyo 참관후기
 
How & Why we have connected Slack & IRC
How & Why we have connected Slack & IRCHow & Why we have connected Slack & IRC
How & Why we have connected Slack & IRC
 
SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)SKHUFEEDS 소개 발표자료(노트 포함)
SKHUFEEDS 소개 발표자료(노트 포함)
 
SKHUFEEDS 소개 발표자료
SKHUFEEDS 소개 발표자료SKHUFEEDS 소개 발표자료
SKHUFEEDS 소개 발표자료
 
Snaps on Ubuntu Desktop
Snaps on Ubuntu DesktopSnaps on Ubuntu Desktop
Snaps on Ubuntu Desktop
 
How and why we have integrated Slack and IRC
How and why we have integrated Slack and IRCHow and why we have integrated Slack and IRC
How and why we have integrated Slack and IRC
 
Ubuntu's Unity - Birth to Death(in 5minutes)
Ubuntu's Unity - Birth to Death(in 5minutes)Ubuntu's Unity - Birth to Death(in 5minutes)
Ubuntu's Unity - Birth to Death(in 5minutes)
 
Jekyll and GitHub Pages
Jekyll and GitHub PagesJekyll and GitHub Pages
Jekyll and GitHub Pages
 
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
 
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기
Git&GitHub 를 이용한 버전관리와 협업 - 2.비교하기와 되돌리기
 
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기
Git&GitHub 를 이용한 버전관리와 협업 - 1.첫 커밋 푸시하기
 
Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기Node.js 런타임 버전 관리하기
Node.js 런타임 버전 관리하기
 

Naver Campus Hackday Winter 2017 참가 후기

  • 1. Naver Campus Hackday 참가후기 + Naver 동계 인턴 면접 참가 후기 한영빈 / Youngbin Han / 韩永斌 sukso96100@gmail.com
  • 3. 왜 갔어요? • 동아리 Slack #feeds 채널에 핵데이 한다고 뜸. • Slack 좀 씁시다 여러분. • 학과 워크샵을 갔는데 강연하러 나온 네이버에 막 들어간 선배가 강연 끝에 가보라고 추천을 하심. • 그래서 일단 신청함 - 딱히 기대 안함 • 참가자로 선발됨(!)
  • 5. 팀 멘토님 : 제가 영빈님 2학년인데 뽑은 이유가... 이거 한번 봐요, 이거 보고 뽑았어요. 옆에 있던 팀원분 : 와... 저렇게 하기 쉽지 않은데... (참고로 나머지 팀원은 모두 3~4학년)
  • 7. 어짜다 보니 Android 앱 담당을... • 팀원0 - 전 서버 선호... Android 몰라요... • 팀원1 - 저도 서버... Android 모르고 iOS 는 함. • 팀원2 - 전 서버, 근데 Android 도 함. • 나 - Android 쪽에 붙어야겠네...
  • 8. 그래서... • 팀원0 - 서버 • 팀원1 - 서버 + iOS 판매자용 앱 작업 • 팀원2 - Android 일반 사용자용 앱 작업 • 나 - Android 일반 사용자용 앱 작업
  • 9. 현실. • 팀원0 - 서버 • 팀원1 - 서버 하시다가 Android 앱 판매자쪽으로... • 팀원2 - Android 사용자 부분 작업 • 나 - Android 사용자 부분 작업
  • 10. 사전작업 - 기획 • 판매자 • 웹으로 구현 : 구매 물품 목록에 대한 QR 코드 보여주기 • 이용자 • 앱으로 구현 : 판매자의 QR 스캔해서 결제
  • 11. 사전작업 - 코딩 • Android 쪽만 미리 작업 - UI 만 미리 부분적으로 작업 • (비어있는) 메인화면 • QR 코드 스캔 화면 - 걍 라이브러리 가져다 씀 • 스캔 결과 처리 • 결제 완료 화면
  • 12.
  • 13.
  • 14.
  • 15. 첫날 • 네이버 그린팩토리로 모임. • 행사 일정 안내, 버스 탑승 안내 • 버스 타고 춘천에 위치한 네이버 커넥트원 연수원으로 이동 • 작업 시작
  • 16. 일정 자~ 버스 타실꺼구요~ 내리셔서 짐 풀으시고, 개발하다가, 먹고, 개 발하다가, 밥먹고, 개발하다가, 자고, 개발하다가, 먹고, 개발하다 가, 먹고, 개발하다가......... 자 일정 다른건 보실 필요 없고, 밥 시간만 잘 기억하시면 됩니다.
  • 17.
  • 18. 첫날 작업(내 작업 위주로 설명하자면.) • 간식 사수 (멘토 : 여러분! 간식이 털리고 있습니다. 사수 하러 갑시다!) • 앱 화면 세부 기획 + 작업 • 결제 기능 - 결제 인증(비밀번호 입력 화면) 추가 • 구매내역 - 구매 기록, 기록별 상세, 충전/환불 • 로그인/회원가입 - 이건 다른분이 작업 • 메인화면 작업 - 다같이 작업 • 저녁식사, 커넥트원 구경, 배드민턴 치기(본인 포함 팀원 모두가 몸치)
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. 둘쨋날(마지막날) • UI 작업 마무리 • 앱과 서버 연동 작업 + 추가 UI 작업(충전 화면) • QR코드 스캔 처리 구현 작업 • QR 스캐너 라이브러리 교체 작업 • 서버 하시던 분 한명 -> 앱 판매자 기능 구현 으로 넘어오심 • 2시쯤 마무리. 각자 작업한 부분에 대해 발표.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Kotlin Android Extension • Java Button 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 } });
  • 30. 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 } );
  • 31. Kotlin Android Extension • Kotlin(+Kotlin Android Extension, lambda) button.setOnClickListener{ // Handle button click event }
  • 32. Data class • 데이터만 가지고 메소드는 없는 클래스 만들 때 편리함. // Example data class Contact(val name: String, val phone: String)
  • 33. Threading • Java Thread thread = new Thread(){ ()->{ // Handle background task } } thread.start();
  • 35. 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) }
  • 36. 참가 결과 • 우수참가자 선정 • 채용담당자 : 님 네이버 로 면접보러 오세요. • 본인 : ??????
  • 37.
  • 38. 살다살다 네이버 면접 기회를 얻을 줄이야... 문제는 준비를 하나도 안하고 그냥 감.
  • 39. 여기로 들어가서 기다리시면 됩니다. 그리고 그 회의실은 면접실이 되었다.
  • 40. 면접 • 총 2시간(인데 시간 초과해서 실제로는 2시간 반) • 면접관 두분이 순서대로 한분씩만 들어와서 한시간씩 진행 • 핵데이때 한 것, 제출한 서류, 지원한 직무 관련 하여 질문 • 지원한 직무에 대해 굉장히 깊게 질문함. • 면접관 한분마다 손코딩 3~4문제 정도
  • 41. 대충 기억나는 질문 나열 • Final 키워드에 대한 질문 • Object 클래스에 구현된 메소드 들을 설명해 보세요. • StringBuilder, StringBuffer 의 차이는? • 싱글톤 패턴 알아요? 디자인 패턴 아는거 있어요? • 멀티스레딩 관련 질문.
  • 42. 대충 기억나는 질문 나열 • Android BroadcastReceiver 를 등록하는 방법은? • 답 : 동적으로 등록 또는 메니페스트에 명시하여 등록 • 둘의 차이는? 메니페스트에 등록하면 편한데 왜 메소드를 호출해서 동적으로 등록할까요? • 인텐트 필터가 뭐하는 건가요? • Android 에 있는 기본 컴포넌트 유형에 대해서 설명해 보세요. • 서비스를 시작하는 방법은? 답 : 그냥 startService() 또는 Activity 에 bindService(). • 서비스 바인드를 왜 할까요? 액티비티에 붙어서 하는거면 굳이 왜하죠? • View 가 어떻게 그려지나요? ViewGroup 은 어때요?
  • 43. 손코딩 • 문자열 뒤집기 - StringBuilder 를 사용하자 : 왜 StringBuilder 를 사용했어요? • 배열에서 중복되는 것만 출력하기 - HashMap Key 로 Integer 를 사용하자 : int 로는 안되나요? • 수열의 n 번째 항 구하는 함수 만들기 • 배열에 있는 항목 정렬하기 • 정렬 공부를 안해서(...) 그나마 아는 버블 정렬로 작성 하자 : 이거 시간 복잡도가 어떻게 될까요? • Android 레퍼런스 문서 인쇄한 것과 Android View Tree 그림을 던져주며. - View Tree 의 최대 깊 이를 구하는 함수 만들기. • 몇게 더 있던 거 같은데 기억이 안남... • 면접관 : 음... 저 코드가 제대로 작동할까요? (휴대전화 카메라로 보드에 쓴 코드를 연속촬영하며)
  • 45. 결론 • Naver Campus Hackday 정말 좋았음 • 시설도 좋고, 나오는 음식도 좋고, 숙소도 좋고, 하루종일 코딩하고, 삽질도 해보고, 새로 운 것도 배우고... • 우수 참가자가 되어 네이버 면접 보는건 상상도 못함. • 면접가서 탈탈탈탈 털리고 온건 함정. • 탈락 했지만, 면접 본것 만으로도 충분히 좋은 경험이였음. • 내가 아직 공부할 것이 한참 많아 남았다는 것을 느낌. • 그러니까 너님들도 GitHub[깃허브, 짓허브 아님.] 열씸히 하고... 핵데이 같은것도 가보고 해봐요... 좋음... 포트폴리오거리도 쌓임...