Top Banner
‘박은환’입니다.
49

삼성 소프트웨어 멤버십 면접 발표 자료

Aug 10, 2015

Download

Engineering

Dainel Park
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 삼성 소프트웨어 멤버십 면접 발표 자료

전 ‘박은환’입니다.

Page 2: 삼성 소프트웨어 멤버십 면접 발표 자료

저는요?

Page 3: 삼성 소프트웨어 멤버십 면접 발표 자료

구글 플레이 주소 : https://play.google.com/store/apps/details?id=com.moonwrite.moonwrite

Page 4: 삼성 소프트웨어 멤버십 면접 발표 자료

Nginx + Node.js + MongoDB Android Client

Page 5: 삼성 소프트웨어 멤버십 면접 발표 자료

Nginx + Node.js + MongoDB Android Client

Page 6: 삼성 소프트웨어 멤버십 면접 발표 자료

“왜 Nginx를 사용하셨나요?”

Page 7: 삼성 소프트웨어 멤버십 면접 발표 자료

Nginx도 ‘이벤트 기반’으로 동작한다고 함!

Page 8: 삼성 소프트웨어 멤버십 면접 발표 자료

“왜 Node.js를 사용하셨나요?”

Page 9: 삼성 소프트웨어 멤버십 면접 발표 자료

예제를 보고 기존의 서버 코드보다 양이 줄어들 것이라는 확신! Hello World로 Apache/PHP보다 10배 정도 빨랐음!!! 자바 스크립트는 쉬울테니 엄청 빠른 개발이 가능하겠지!

서드파티 모듈들이 꽤 풍부했음. 이벤트 기반, 단일 스레드 모델과 Non-blocking I/O라는게 신기했음.

Page 10: 삼성 소프트웨어 멤버십 면접 발표 자료

예제를 보고 기존의 서버 코드보다 양이 줄어들 것이라는 확신! Hello World로 Apache/PHP보다 10배 정도 빨랐음!!! 자바 스크립트는 쉬울테니 엄청 빠른 개발이 가능하겠지!

서드파티 모듈들이 꽤 풍부했음. 이벤트 기반, 단일 스레드 모델과 Non-blocking I/O라는게 신기했음.

Page 11: 삼성 소프트웨어 멤버십 면접 발표 자료

예제를 보고 기존의 서버 코드보다 양이 줄어들 것이라는 확신! Hello World로 Apache/PHP보다 10배 정도 빨랐음!!! 자바 스크립트는 쉬울테니 엄청 빠른 개발이 가능하겠지!

서드파티 모듈들이 꽤 풍부했음. 이벤트 기반, 단일 스레드 모델과 Non-blocking I/O라는게 신기했음.

Page 12: 삼성 소프트웨어 멤버십 면접 발표 자료

예제를 보고 기존의 서버 코드보다 양이 줄어들 것이라는 확신! Hello World로 Apache/PHP보다 10배 정도 빨랐음!!! 자바 스크립트는 쉬울테니 엄청 빠른 개발이 가능하겠지!

서드파티 모듈들이 꽤 풍부했음. 이벤트 기반, 단일 스레드 모델과 Non-blocking I/O라는게 신기했음.

Page 13: 삼성 소프트웨어 멤버십 면접 발표 자료

예제를 보고 기존의 서버 코드보다 양이 줄어들 것이라는 확신! Hello World로 Apache/PHP보다 10배 정도 빨랐음!!! 자바 스크립트는 쉬울테니 엄청 빠른 개발이 가능하겠지!

서드파티 모듈들이 꽤 풍부했음. 이벤트 기반, 단일 스레드 모델과 Non-blocking I/O라는게 신선했음.

Page 14: 삼성 소프트웨어 멤버십 면접 발표 자료

“왜 MongoDB를 사용하셨나요?”

Page 15: 삼성 소프트웨어 멤버십 면접 발표 자료

상황에 따라 달라지는 기획, 빠르게 대응해야했음. 스타트업이라 돈이 없어서 스케일-아웃한 서버를 설계해야했음.

(다행히 서버는 네이버에서 지원받음!) ‘Embeded Document’ 가 가능했음.

버전 업이 되면서 성능도 지속적으로 좋아짐. 게다가 Auto-Sharding 도 지원! 데이터 타입으로 배열도 지원!

ObjectId라는 고유 번호도 발급!

Page 16: 삼성 소프트웨어 멤버십 면접 발표 자료

상황에 따라 달라지는 기획, 빠르게 대응해야했음. 스타트업이라 돈이 없어서 스케일-아웃한 서버를 설계해야했음.

(다행히 서버는 네이버에서 지원받음!) ‘Embeded Document’ 가 가능했음.

버전 업이 되면서 성능도 지속적으로 좋아짐. 게다가 Auto-Sharding 도 지원! 데이터 타입으로 배열도 지원!

ObjectId라는 고유 번호도 발급!

Page 17: 삼성 소프트웨어 멤버십 면접 발표 자료

상황에 따라 달라지는 기획, 빠르게 대응해야했음. 스타트업이라 돈이 없어서 스케일-아웃한 서버를 설계해야했음.

(다행히 서버는 네이버에서 지원받음!) ‘Embeded Document’ 가 가능했음.

버전 업이 되면서 성능도 지속적으로 좋아짐. 게다가 Auto-Sharding 도 지원! 데이터 타입으로 배열도 지원!

ObjectId라는 고유 번호도 발급!

Page 18: 삼성 소프트웨어 멤버십 면접 발표 자료

상황에 따라 달라지는 기획, 빠르게 대응해야했음. 스타트업이라 돈이 없어서 스케일-아웃한 서버를 설계해야했음.

(다행히 서버는 네이버에서 지원받음!) ‘Embeded Document’ 가 가능했음.

버전 업이 되면서 성능도 지속적으로 좋아짐. 게다가 Auto-Sharding 도 지원! 데이터 타입으로 배열도 지원!

ObjectId라는 고유 번호도 발급!

Page 19: 삼성 소프트웨어 멤버십 면접 발표 자료

상황에 따라 달라지는 기획, 빠르게 대응해야했음. 스타트업이라 돈이 없어서 스케일-아웃한 서버를 설계해야했음.

(다행히 서버는 네이버에서 지원받음!) ‘Embeded Document’ 가 가능했음.

버전 업이 되면서 성능도 지속적으로 좋아짐. 게다가 Auto-Sharding 도 지원! 데이터 타입으로 배열도 지원!

ObjectId라는 고유 번호도 발급!

Page 20: 삼성 소프트웨어 멤버십 면접 발표 자료

상황에 따라 달라지는 기획, 빠르게 대응해야했음. 스타트업이라 돈이 없어서 스케일-아웃한 서버를 설계해야했음.

(다행히 서버는 네이버에서 지원받음!) ‘Embeded Document’ 가 가능했음.

버전 업이 되면서 성능도 지속적으로 좋아짐. 게다가 Auto-Sharding 도 지원! 데이터 타입으로 배열도 지원!

ObjectId라는 고유 번호도 발급!

Page 21: 삼성 소프트웨어 멤버십 면접 발표 자료

상황에 따라 달라지는 기획, 빠르게 대응해야했음. 스타트업이라 돈이 없어서 스케일-아웃한 서버를 설계해야했음.

(다행히 서버는 네이버에서 지원받음!) ‘Embeded Document’ 가 가능했음.

버전 업이 되면서 성능도 지속적으로 좋아짐. 게다가 Auto-Sharding 도 지원! 데이터 타입으로 배열도 지원!

ObjectId라는 고유 번호도 발급!

Page 22: 삼성 소프트웨어 멤버십 면접 발표 자료

새로운 경험! 도전 정신!

Page 23: 삼성 소프트웨어 멤버십 면접 발표 자료

새로운 경험! 도전 정신!

Page 24: 삼성 소프트웨어 멤버십 면접 발표 자료

Nginx

SSL

Node.js

MongoDB

Android

Page 25: 삼성 소프트웨어 멤버십 면접 발표 자료

개발할 당시 RESTful 하면서 아름다운 코드를

작성하기로 마음먹음.

Page 26: 삼성 소프트웨어 멤버십 면접 발표 자료

각 URL을 Method별로 함수로 구분하여 구현함.

Page 27: 삼성 소프트웨어 멤버십 면접 발표 자료

GET /article/:id - get_by_id PUT /article/:id - edit_article

Page 28: 삼성 소프트웨어 멤버십 면접 발표 자료

파일 업로드 구현하는데 콜백 구조가 너무 복잡!

Page 29: 삼성 소프트웨어 멤버십 면접 발표 자료

대략 이런 느낌...

Page 30: 삼성 소프트웨어 멤버십 면접 발표 자료

Async 모듈을 사용하여 해결

Page 31: 삼성 소프트웨어 멤버십 면접 발표 자료

요청 시, 서버에서 응답하는 규칙을 정해놓음.

Page 32: 삼성 소프트웨어 멤버십 면접 발표 자료

요청 시, 서버에서 응답하는 규칙을 정해놓음.

에러가 어디서 발생했는지 포인트를 잡을 수 있음.

Page 33: 삼성 소프트웨어 멤버십 면접 발표 자료

이런 식으로 에러를 찾다가 좀 더 체계적인 접근이 필요함을 느낌

Page 34: 삼성 소프트웨어 멤버십 면접 발표 자료

MongoDB 메뉴얼을 보면서 열심히 함. 읽기 처리를 분산함.

(서비스가 잘 안되서 분산 처리가 무의미했습니다...)

Page 35: 삼성 소프트웨어 멤버십 면접 발표 자료
Page 36: 삼성 소프트웨어 멤버십 면접 발표 자료

DrawerLayout 를 구성하여 개발!

Page 37: 삼성 소프트웨어 멤버십 면접 발표 자료
Page 38: 삼성 소프트웨어 멤버십 면접 발표 자료

GCM 을 이용하여 서버-앱 간 알림을 구현함. (단, 중복된 알림이 오는 버그가 있었음.)

Page 39: 삼성 소프트웨어 멤버십 면접 발표 자료

RequestQueue를 init해주는 클래스를 작성하고 사용함.

Page 40: 삼성 소프트웨어 멤버십 면접 발표 자료

“글을 작성할 때, 사용자의 감정에 따라 음악을 추천해주면 어떨까?” 라는 생각을 하게됨.

Page 41: 삼성 소프트웨어 멤버십 면접 발표 자료

“주파수로 변환한 후, 분석하면 된다고 생각함!” (고 3 학생, 푸리에 변환에서 많이 좌절...ㅠ)

Page 42: 삼성 소프트웨어 멤버십 면접 발표 자료

한 번, Matlab으로 분석해보기로 함 필요한 것은 시간-주파수-크기에 따른 그래프

Page 43: 삼성 소프트웨어 멤버십 면접 발표 자료

meshgrid와 spectogram 함수를 이용하여 분석함.

Page 44: 삼성 소프트웨어 멤버십 면접 발표 자료

결국, 분위기에 맞는 음악을 분류함. (앱에 넣었는데 저작권때문에 기능 자체를 뺐습니다...)

Page 45: 삼성 소프트웨어 멤버십 면접 발표 자료

이 일로 사람의 감정에 대해 큰 관심을 갖게 됨! “사람의 목소리를 통해서 감정을 추측할 수 있지 않을까?”

관련 논문들을 살펴보았지만, 잘못된 감정 모델을 채택한다고 생각을 하게됨.

Page 46: 삼성 소프트웨어 멤버십 면접 발표 자료

이 일로 사람의 감정에 대해 큰 관심을 갖게 됨! “사람의 목소리를 통해서 감정을 추측할 수 있지 않을까?”

관련 논문들을 살펴보았지만, 잘못된 감정 모델을 채택한다고 생각을 하게됨.

Page 47: 삼성 소프트웨어 멤버십 면접 발표 자료

이 일로 사람의 감정에 대해 큰 관심을 갖게 됨! “사람의 목소리를 통해서 감정을 추측할 수 있지 않을까?”

관련 논문들을 살펴보았지만, 잘못된 감정 모델을 채택한다고 생각을 하게됨.

Page 48: 삼성 소프트웨어 멤버십 면접 발표 자료

“아무것도 안 해보고 후회하는 것보다 일단 도전해보는 것이 낫다.”

Page 49: 삼성 소프트웨어 멤버십 면접 발표 자료

감사합니다.