[job] 카카오, 삼성전자 SW직군 취업특강

2 분 소요

카카오, 삼성전자 SW 직군 취업특강

카카오

1. 소프트웨어 디자인의 중요성

제품/서비스를 만들기 위해 기본적으로 고민해야할 요소들

 1. 아키텍처
 2. 데이터베이스 디자인
 3. 서브시스템 디자인
 4. 컴포넌트 디자인
 5. 데이터 스트럭처, 알고리즘 디자인
  • 카카오는 5번에 집중
    • 신입 채용시 코딩테스트를 보는 이유
    • 5번 요소에 대한 능력이 나머지 요소에 영향을 미침
  • 제품/서비스의 디자인 3요소
    • 기능적 디자인
    • 성능적 디자인(속도)
    • 유지/보수(얼마나 오래 사용할 수 있고 개선될 여지가 있느냐)
      • ex. 다음, 카카오: 10~20년동안 사용되고 있음. 어떤 디자인으로 구성하여 유지보수를 자동화하고 효율화할 수 있느냐 중요

2. Q & A

  • 기본을 봐라
    • 코드가 어떻게 설계되어있으며
    • 이렇게 설계했을때는 어떤 문제가 생길수 있고 어떤 장점이 있는지를 알 수 있는 능력을 갖추기
  • 아는 척 하지마라
    • IT 사회는 너무 복잡해서 다 알 수 없음
    • 면접관도 그것을 알기 때문에, 아는 것은 안다고 모르는 것은 모른다고 솔직하게 말하기
  • 포트폴리오/코테 팁
    • 지원하려는 영역의 기본기에 집중
      • (서버사이드 예시) 각 코드가 프로그램 상에 어떤 차이를 가져오는지 알기
        • ex. for문이 1번 돌때와 1000번 돌때 차이
    • 코딩 테스트도 이러한 원리를 확장하여 지원자의 기본기를 알아보려는 테스트
      • 유형별로 어떤 방법, 구조를 쓰는 게 효과적인지 몸에 익을 때까지 연습
  • 비전공자?
    • 가능. 클라우드 팀의 1/3 비전공 출신
    • 하지만 전공자보다 배운 시간이 적기 때문에 그만큼 더 많이 연습하면서 차이를 극복
    • 앱서버 웹서버 db서버를 가지고 문제 해결하는 연습
  • 면접 팁?
    • 표면적인 것이 아니라 근본적인 이유를 아는지
      • 자율주행을 공부했다는 지원자. 자율주행에서 가장 중요한 부분?
      • 자바를 공부했다는 지원자. 자바를 jvm에서 돌리는데 왜 virtual machine이라고 하는지?
      • 키보드 눌렀을 때 시스템이 처리하는 과정?


삼성

버그를 안만들어내는 개발자를 원한다

1. 버그를 안만드는 신입이란?

  • 내가 생각하는 로직을 정확히 구현할 수 있는
  • 다른 사람의 생각을 이해 및 로직으로 정확히 구현할 수 있는
  • 쉽게 생각해 내기 어려운 예외 상황을 생각해내는
  • 성능(속도/용량) 저하도 버그라고 생각하는

2. 기업이 바라는 ‘SW개발 직무’ 신입사원 역량 2가지

  • A) SW 개발에 대한 기본 역량이 튼튼 (코딩 경험이 많은 개발자)
  • B) 전공과목들에 대한 기초 지식(but 전문적인 수준의 지식은 바라지 않음. 현업에서 쌓아가야 함)
  • BUT A>B


3. 그렇다면, 기본역량을 키우기 위해서는?

  • 끝까지 완성한 프로젝트 많이 해보기(과제말고)
  • 개인적인 프로젝트 끝까지 완성해서 서비스 해보기(버그 없이 완성도 높은 수준으로)
  • 알고리즘 많이 풀어보기


4. (3번)처럼 함으로써 기를 수 있는 능력

  • 회사에서는 여러가지 오픈소스를 가져다가, 자기네 제품/서비스에 맞게 포팅(porting)하여 사용
    • 누구나 쓰는 API보다 자기네 상황에 맞게 최적화 할 수 있는 능력이 무엇보다 중요함 => 포팅
    • 알고리즘 연습을 통해서, 원하는 대로 API를 수정해서 사용할 수 있는 능력 향상됨
  • 경쟁사보다 더 빠르게 더 빠른 속도로 서비스 구축하고
  • 일반적으로 생각하기 어려운 테스트 케이스 생각해내고
  • 결국, 버그를 만들지 않는 SW개발자가 될 수 있음


5. 결론

  • 열정, 전문성, 커뮤니케이션 능력보다
  • 알고리즘 잘 짜고 앞에 설명한 것들 해본 경험이 있는 사람 선호
  • 이런 것들이 가능하다는 것은 그만큼의 열정, 전문성, 커뮤니케이션 능력있다는 것을 대변하는 것

FAQ

1. 추천경험

  • 오픈소스 경험
    • 자소서 보면 주제만 다르고 다 똑같은 프로젝트
    • 현재 기업들은 개발 시간보다 디버깅하는 데에 많은 시간을 씀
    • 오픈소스를 포팅하는데 시간이 많이 걸리기 때문
    • 직접 오픈소스에 컨트리뷰트 한 경험이 있다면 GOOD (README에 오타수정이라도)

2. 포트폴리오는 글이 아닌 코드로

  • 열마디 말보다 깃허브 링크가 좋음

  • 시작한 시간이 남보다 적더라도 시작한 이후부터 소프트웨어에 미쳐보겠다고 꿈꾸고 노력해온 사람

3. 삼성전자에 왜 지원하는가? 라는 질문에 대한 조언

  • 자기만의 이유를 찾기
  • 대기업의 장점이 있고, 스타트업의 장점이 있음
  • 삼성에 오는 게 정답이라고 할 수없다
  • 작은 곳에서 미래의 삼성을 만들기 위한 기회를 갖고 싶다면 스타트업

느낀점

  • cs 기초 공부 꾸준히 - 코드의 근간을 이해하고 짜기
  • 알고리즘 열심히 - 더 빠르고 효율적인 코드, 예외 상황 테스트 케이스로 생각할 수 있는 능력 기르기
  • 다른 사람 코드 배우기 - 오픈소스로 시중에 서비스 중인 코드 많이 읽기
  • 깃허브 포트폴리오로 활용
  • 오픈소스 컨트리뷰트 경험 해보기

댓글남기기