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

49
‘박은환’입니다.

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

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: 삼성 소프트웨어 멤버십 면접 발표 자료

감사합니다.