본문 바로가기
일상/도전의 과정

오늘 가산쪽 개발자 면접 후기.

by 얏옹이 2023. 4. 18.
반응형

면접은 2:1로 이루어졌다.

 

개발직 관련 면접은 처음 겪어보기도 하고, 면접 자체가 너무 오랜만이여서 긴장을 했는지 아는 질문도 제대로 답변을 못한게 많이 아쉽다.

 

기억나는 질문들과 그에따른 답변들을 정리해서 다음 면접을 준비하려한다. 개인적인 질문을 제외한, 기술 관련 질문들만 언급하려 한다.

 

1. Java와 JavaScript의 차이점을 말해보자.

 

이부분 수없이 많이 듣고 했는데도, 막상 면접때 답변하지 못했다. 면접은 멘탈싸움이다.

다시 정리해보자면 Java와 JavaScript는 이름은 비슷하지만 전혀 다른 프로그래밍 언어이다.

Java는 객체 지향 프로그래밍 언어로 웹, 모바일(안드로이드), 게임, 서버 백엔드, 소프트웨어 등 다양한 분야에서 사용된다.

Javascript는 웹 브라우저 내에서 실행되도록 설계된 프로그래밍 언어이다. 웹 페이지의 동적 기능을 구현하는데 주로 사용된다.

 

Java는 컴파일러 기반 언어로 JVM을 통해 실행된다. 그렇기때문에 플랫폼에 독립적이고, 컴파일된 바이트코드를 실행하기때문에 Javascript보다 빠른 실행 속도를 보인다.

 

JavaScript는 인터프리터 기반 언어로 웹 브라우저에서 직접 실행된다. 실행 시점에 해석되기때문에 Java보다 실행속도가 느릴수 있다.

 

반응형

 

2. 인상깊게 읽은 개발 서적이 있는지?

 

이 질문은 예상외 질문이라 상당히 당황했다. 사실 기술서적, 학원에서 배운 학원 교재 말고 별도로 내가 구비해서 읽어본 개발서적은 없다. 이것들이라도 이름을 댔어야 했나....

당황한 나머지 정보 처리 기사 준비중이여서 정보 처리 기사 필기책 봤다고 했다 ㅋㅋㅋ

 

 

3. 기억나는 디자인 패턴에 대해서 말해보고 설명해보라.

 

디자인패턴? 기억도 안난다 수업시간에도 이건 뭐지... 하면서 듣는둥 마는둥 했는데 이걸 물어볼줄은.... 정리해놓자

 

생성 패턴 - 객체 생성에 관련된 패턴으로, 추상팩토리, 빌더, 팩토리 메소드, 프로토타입, 싱글톤등이 있다.

 

구조 패턴 - 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴으로, 어댑터, 브릿지, 복합체, 데코레이터, 퍼사드, 플라이웨이트, 프록시 등이 있다.

 

행위(행동) 패턴 -  객체나 클래스 사이의 알고리즘이나 책임 분배에 관한 패턴으로, 책임연쇄, 커맨드, 반복자, 중재자, 메멘토, 옵저버, 상태, 전략, 템플릿 메서드, 비지터 등이 있다.

 

이건 자세히 언급하려면 시간을 두고 언급하는게 좋을거같아서 일단 이정도만 있다는걸 숙지해보고 차근차근 알아봐야겠다.

 

마지막으로 Java에서 디자인 패턴을 사용하면 코드 중복 방지와, 런타임시에 타겟 메소드 변경이 가능하며, 확장성과 알고리즘 변경이 용이해진다는 장점이 있다.

 

4. 클린코드에 대해서 아는만큼 설명해보라

 

대답을 정말 엉망으로 한거같다.

 

클린코드란 한마디로 말해 '쉽게 이해 가능하며, 지속적으로 개발하기 용이한 코드' 를 말한다.

클린코드는 모든 개발자가 읽기 쉽고, 변경할수 있는 코드로 요약할수 있다.

따라서 클린코드는 가독성이 높고, 유지보수가 용이해진다. 이는 곧 개발 비용의 절감을 의미하며, 프로젝트의 진행 속도를 높인다.

 

예를들어 의미있는 변수명이나 함수명을 사용한다.

뭐 대~충 그냥 String타입의 asdf 이런식으로 함수명이나 변수명을 사용하면 이 함수나 변수가 무슨 작동을 하는지

다른 개발자는 모른다. 추가적으로 설명을 해줘야하는 시간적 공백이 생기며, 이는 곧 프로젝트 완성의 방해물이 된다.

 

함수는 하나의 역활만 해야하며, 오류코드보다는 예외처리를 활용하는것 등이 있다.

 

2022.11.07 - [Study/Tip] - Java 효율적인 코딩을 위한 참고 서적

 

Java 효율적인 코딩을 위한 참고 서적

1. 클린코드 http://www.yes24.com/Product/Goods/11681152 Clean Code 클린 코드 - YES24 애자일 소프트웨어의 혁명적인 패러다임을 제시하는 책이다. 저자 로버트 마틴은 오브젝트 멘토(Object Mentor)의 동료들과 힘

yat-ong.tistory.com

 

이런 포스팅을 한적이 있다. 나중에 이런책을 읽어봐야지... 했던게 생각이 난다.

 

이 책을 읽고 오늘 면접에서 클린코드 책이 참 인상깊었다. 라고 했으면 얼마나 좋았을까 하는 생각이 든다.

 

5. 커미터? 커밋?

 

Github나 SVN 사용한적 있다고 하니 물어본거같은데 생소한 단어였다. 아마 현업에서는 이렇게 부르는거같나보다.

 

커밋은 소스코드 저장소의 변경 사항을 기록하는 행위이고, 커미터는 코드를 저장소에 커밋한 사람을 칭하는거 아닐까 생각해본다.

 

난 커미터였다고 대답했다.

 

 

 

 

 

 

 

 

반응형