- 서류기반 기술질문

 

  • 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

 

+ Recent posts