기술면접 7

[기술면접준비] 2022.05.10

OOP란? - Object Oriented Programing. 객체 지향 프로그래밍. - 객체의 관점에서 프로그래밍 하는 것. 코드의 재사용성과 중복제거가 가장 큰 목적 - 객체들의 유기적인 관계를 통해서 프로세스가 진행된다. 반면에 c언어는 절차지향프로그래밍인데, 프로세스가 함수 단위로 순서대로 진행된다. - OOP의 특징은 추상화, 캡슐화, 상속, 다형성이다. OOP 특징 - 추상화 : 객체의 공통된 속성을 클래스로 정의하는 설계 기법 - 캡슐화 : 외부에 노출할 필요가 없는 정보들은 은닉 (정보은닉) - 상속 : 상속 관계에 있는 두 클래스에 대해, 부모 클래스가 자손 클래스에게 속성을 물려주는 것. 코드의 재사용이 목적 - 다형성 : 같은 형태이지만 다른 기능을 하는 것. 오버라이딩은 이와 관련..

기술면접 2022.05.10

[기술면접준비] REST API 란? (REST, REST API, RESTful API)

1. URI와 URL의 차이점은? URL은 Uniform Resource Lacator : 인터넷 상 자원의 위치 URI는 Uniform Resulrce Identifier : 인터넷 상의 자원을 식별하기 위한 문자열의 구성 URI > URL URI가 더 포괄적인 범위라고 할 수 있다. 2. REST, REST API, RESTful API 를 설명하세요 - REST의 개념 어떤 자원에 대해 CRUD 연산을 수행하기 위해 URI(Resource) 형태로 GET, POST 등의 방식(Method)을 사용하여 요청을 보내며, 요청을 위한 자원은 특정한 형태(Representation of Resource)로 표현된다. - REST는 REpresentational State Transfer의 약자. 자원을 이..

기술면접 2022.05.09

기술면접준비(4)_100선-1

1. 객체지향언어(Java, C++)와 구조적 언어(C)의 차이점 3가지만 든다면? ​ 1) 클래스 & 구조체 공통점 : 멤버 필드 가짐. 차이점 : 멤버 메소드(함수) 존재 여부(클래스 有, 구조체 無) ​ 2) 자료구조(컬렉션, STL) C : 자료구조 미완. -> 사용자 작성 C++, Java : 자료구조 완비. ​ 3) 예외처리, 추상클래스/인터페이스 존재 여부 ​ ----------------------------------------------------------------------------------------------- ​ 객체지향의 3~5가지 속성 ​ 1) 상속성(계승성) : 오버라이딩, 기존 코드 재활용 등 2) 캡슐화 : 보안, 접근 제어자 등 3) 다형성 : 메소드 오버로딩,..

기술면접 2021.06.09

기술면접준비(3)_MVC패턴/ model-1과 model-2차이점

1. MVC (디자인) 패턴 1) 모델(Model) : 일반적으로 프로젝트에서의 모델은 DAO처럼 SQL처리를 담당하는 CRUD 메서드로 구성된 자바 빈이나 자료를 보유/전송하는 DTO, VO 등의 자바빈을 말하는 것입니다. ​ 2) 뷰(View) : 프론트 사용자들이 웹브라우저 등의 클라이언트에서 볼 수 있는 부분을 말하는 것이며, HTML/CSS/javascript (node.js 제외), 및 JSP, thymeleaf(타임리프)가 이러한 부분들에 해당됩니다. JSP로만으로도 프론트 및 백단(back-end)을 모두 구성할 수 있지만 MVC model-2 패턴 위반(안티 패턴)이기 때문에 그렇게 하지 않습니다. ​ 3 컨트롤러(controller) : 모델을 활용하여 HTTP 제어 흐름에서 요청/응답..

기술면접 2021.06.07

기술면접준비(2)_AOP/IOC컨테이너/DI

1. AOP란 무엇입니까? ​ 관점 지향 프로그래밍(Aspect Oriented Programming)의 약자. 로깅(logging)이나 트랜잭션의 전파정책(propagation) 등 일일이 호출하지 않아도 마치 Servlet의 필터(filter) 처럼 일정한 시점에 관점을 호출하도록 메타데이터(설정 정보)에서 지정하면 AOP 컨테이너(가령 스프링 컨테이너)에 의해 자동으로 호출되는 모듈을 작성할 수 있는데 이것이 관점(aspect)이라는 객체이다. 스프링은 aspectJ 라는 관점지향 언어를 사용하여 spring aop 의존성 정보를 통해서 관점 지향 프로그램을 작성할 수 있다. ​ https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte:fdl:..

기술면접 2021.06.07

기술면접준비(1)_VO/DAO/DTO/트랜잭션

1. VO는 무엇이며 언제 사용하는가? 자바빈의 일종으로 값 객체로서 데이터베이스 DML에 대응되는 CRUD 메서드들의 모듈인 DAO, 직렬화(객체의 내용을 파일 스트림으로 만듦) 등에서 데이터 유출입시 값을 일시적으로 보유하도록 사용하는 객체. 보통 일반적으로 필드는 보안(직접 접근 방지)을 위해 private 접근 제어자를 활용하는 경우가 많고 외부 접근시 필드들에 대한 getter/setter 메서드를 주로 활용합니다. lombok 등의 유틸리티를 사용하면 애너테이션 표기만으로 각종 관련 메서드들을 자동생성해주는 기능을 활용할 수 있다. ​ 2. 관련 질문) getter/setter는 무엇인가? VO나 DTO(TO)등의 자바빈 객체에서 멤버 필드에 대해 멤버 필드의 직접 접근을 막고 멤버 필드들을 ..

기술면접 2021.06.07