- 서류기반 기술질문
- aop: 대답 못함*
- mvc에 대하여: 대답못함*(내가 자소서에 써놓고)
- snakecase: 대답 못함,,,(자바에 적합한 이름 방법)*
- restful api: 대답함
- put,petch: 대답함
- 도커: 대답했는데 잘 모르겠음
- 스터디하면서 어려웠던 점과 해결했던 점
- 어려움을 해결한 과정
- 배포도 했나?: 못했다고 함
- 어려운 점 풀어가는 방식이 인상깊었다고 함
-결과: 불합격
- 내가 생각한 불합격한 이유: 기술질문 절반을 대답하지 못한 것, 기본적인 질문 대답 못함(camelcase는 알았는데 sneakcase 몰랐음)
- 해결방안: 내가 다루는 프레임워크, 프로그램에 대한 지식 습득하기/기본적인 컴공 지식들 공부하기
- 스펙이 많이 부족해서 당연히 서류에서 떨어질 줄 알았는데 처음으로 서류합격을 해 본 경험이라 의미가 있다고 생각함
- 비전공자이지만 그 생각에 나를 제한하지 않고 올해 시작하면서 인강도 듣고, 스터디도 하면서 꾸준히 쌓아올린 결과물이라고 생각해 발전가능성을 느끼게 된 경험이었음
- 앞으로 시간적 여유가 많으니 기본적인 것부터 차근차근 공부해 나가면 더 발전할 수 있을 거라고 생각함
<대답 못했던 부분 공부>
1. AOP(aspect oriented programming,관점 지향 프로그래밍)
: 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로(코드들을 부분적으로 나누는 것을 의미함)
각각 모듈화하는 것
모듈화는 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말함
핵심적인 관점(모듈화) (논리) 부가적인 관점(모듈화)
핵심적인 관점: 우리가 적용하고자 하는 핵심 비즈니스 로직이 됨
부가적인 관점: 데이터베이스 연결,로깅,파일 입출력
->소스 코드상에서 다른 부분에 계속 반복해서 쓰는 코드들을 발결할 수 있음. 흩어진 관심사(crosscutting concerns)
즉, 흩어진 관심사를 aspect로 모듈화하고, 핵심적인 비즈니스 로직에서 분리하여 재사용하는 하겠다는 것이 aop의 취지.
-aop의 주요 개념
- aspect: 흩어진 관심사를 모듈화 한 것. 부가기능을 모듈화함
- target : aspect를 적용하는 곳(클래스,메서드,,)
- advice: 실질적으로 어떤 일을 해야할지에 대한 것, 실질적인 부가기능을 담은 구현체
- ointPoint: Advice가 적용될 위치, 끼어들 수 있는 지점. 메서드 진입 지점, 생성자 호출 시점, 필드에서 값을 꺼내올 때 등 다양한 시점에 적용가능
-PointCut: JointPoint의 상세한 스펙을 정의한 것. 'A란 메서드의 진입 시점에 호출할 것'과 같이 더욱 구체적으로 Advice가 실행될 지점을 정할 수 있음
++(target,advice,jointpoint,pointcut을 다 모은게 aspect인가?)
-스프링 AOP 특징
- 프록시 패턴 기반의 aop 구현체, 프록시 객체를 쓰는 이유는 접근 제어 및 부가기능을 추가하기 위해서임
- 스프링 빈에서만 적용 가능
- 스프링 IoC와 연동하여 엔터프라이즈 애플리케이션에서 가장 흔한 문제에 대한 해결책을 지원하는 것이 목적
- 문제라 함은 중복코드, 프록시 클래스 작성의 번거로움, 객체들 간 관계 복잡도 증가,,,등
++모르는 단어: 프록시, 프록시패턴, IoC,엔터프라이즈 애플리케이션
출처: https://engkimbs.tistory.com/746
2. snake_case
: 언더스코어를 구분자로 함. 주로 상수 표현 시에 사용됨
- camelCase
- kebab-case
- PascalCase
3. 도커(Docker)
- 컨테이너 기반의 오픈소스 가상화 플랫폼
- 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해줌
- 프로그램(백엔드,디비 서버,메시지큐 등) 컨테이너로 추상화 할 수 있고, 조립 pc, aws,azure,google cloud 등 어디에서든 실행할 수 있음
-도커의 장점
- 모듈성
- 계층 및 이미지 버전 제어
- 롤백
- 신속한 배포
- 도커는 단일 컨테이너 관리에 적합하도록 만들어져 있는데, 수백개로 세분화된 컨테이너와 컨테이너화된 앱을 점점 더 많이 사용하기 시작하면 도커가 컨테이너를 그룹화 해야함. 이때 이용되는 것이 쿠버네티스
++모르는 단어: 쿠버네티스
출처: https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
https://www.redhat.com/ko/topics/containers/what-is-docker
4. Spring MVC
'Dev Story > 면접자료 및 후기' 카테고리의 다른 글
[YAPP 백엔드 22기] 서류 합격부터 면접까지 (0) | 2023.04.30 |
---|---|
2021 yapp 백엔드 면접 복기(공통질문 위주) (0) | 2021.09.02 |