본문 바로가기

신입 개발자 면접 기초

(26)
RESTful에 대해서 설명해주세요.(REST, RESTful, RESTful API 개념 정리) REST가 뭐에요? RESTful에 대해서 설명해주세요. REST가 무엇인가?REST는 분산 시스템 설계를 위한 아키텍처 스타일이다.아키텍처 스타일이라는건 쉽게 말하면 제약 조건의 집합이라고 보면 된다.RESTful은 무엇인가?RESTful은 위의 제약 조건의 집합(아키텍처 스타일, 아키텍처 원칙)을 모두 만족하는 것을 의미한다.REST라는 아키텍처 스타일이 있는거고 RESTful API라는 말은 REST 아키텍처 원칙을 모두 만족하는 API라는 뜻이다.우리가 REST와 RESTful을 동일한 의미로 사용하곤 하는데 엄격하게는 다르다는 것을 알 수 있다.->이로써 REST와 RESTful, RESTful API가 무엇인지, 어떻게 다른지를 말할 수 있게 되었다.REST가 필요한 이유는 뭘까?1. 위에서 ..
메이븐(Maven)은 알고 스프링(Spring)을 쓰는가? (pom.xml 분석하며 가볍게 정리하는 빌드 툴, Maven) 메이븐(Maven)은 알고 스프링(Spring)을 쓰는가? 제목과 같은 질문에 필자는 제대로 답변할 수 없었다.단순하게는 maven repository에서 dependency 추가해서 필요한 라이브러리 쓰는 정도?무엇을 위해 쓰는지, 왜 쓰는지, 어떻게 쓰는지에 대한 구체적으로 알지 못했다. 사실 지금까지 알 필요도 없었고, 초보 프로그래머의 기준에서는 Maven을 몰라도 대중적이면서도 다양한 라이브러리를 많이 접하고 써보면 "장땡"이었기 때문이었다.사실 지금도 자세히는 모른다.그러나, 조금 더 나은 프로그래머가 되기 위해서 maven에 대한 이해가 필요하다고 생각해서 정리한 것이다. ("maven을 빠삭하게 알아야 해!"가 아니라 "maven을 알아가는 길에 한 발자국을 떼보자!"다.)pom.xml을 ..
웹애플리케이션 서비스가 아닌 웹서비스(WebService), WSDL을 아시나요? (WSDL 문법, 구조, 구문 분석) 웹서비스(WebService)는 무엇인가? * 꽤나 오래된 기술이라서 쉽게 변화하기 힘들거나 변화에 보수적이고 오래전 부터 해왔던 업계에 적용되어 사용되고 있다. (일반적인 소프트웨어 회사에 가는 사람들은 굳이 볼 필요가 없다.)위키백과에 의하면 '네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용을 하기 위한 소프트웨어 시스템' 이라고 한다. (상호작용을 위해서는 프로토콜이 필요하다는 것은 예상가능하다.)웹서비스는 웹 애플리케이션 서비스와 다르다.웹서비스는 쉽게 설명하기 위해 비약을 하면 API 서버와 유사하다.어떠한 애플리케이션이든 API서버는 "지정된 올바른 요청"을 하면 그에 해당하는 "답변"을 준다.마찬가지로 웹서비스는 애플리케이션들이 플랫폼과 프로그래밍 언어와는 독립된 방식으로 통신할 수..
JVM 구조와 자바 런타임 메모리 구조 (자바 애플리케이션이 실행될 때 JVM에서 일어나는 일, 과정을 설명해줄 수 있나요?) JVM(Java Virtual Machine) : 자바 가상 머신으로 자바 바이트 코드를 실행할 수 있는 주체다.CPU나 운영체제(플랫폼)의 종류와 무관하게 실행이 가능하다.즉, 운영체제 위에서 동작하는 프로세스로 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실행시켜주는 역할을 한다.JVM의 구성을 살펴보면 크게 4가지(Class Loader, Execution Engine, Garbage Collector, Runtime Data Area)로 나뉜다.1. Class Loader자바에서 소스를 작성하면 Person.java 처럼 .java파일이 생성된다. .java 소스를 자바컴파일러가 컴파일하면 Person.class 같은 .class파일(바이트코드)이 생성..
공공데이터포털 OPEN API 사용하는 방법 (API키 발급 과정부터 개발 문서 확인, 자바코드로 Response 받아보기까지 example) OPEN API 사용하는 방법 (OPEN API 사용해본적 있나요?) 공공데이터 포털에서 제공하는 OPEN API 사용하는 방법에 대해서 간단히 공부해보았다.(원래는 자바에서 XML 파싱 라이브러리를 테스트해보려고 적당한 XML 파일을 찾다가 OPEN API가 JSON 형식 말고도 XML형식으로 제공한다는 것이 생각나서 테스트해봤다.)신입 개발자로 취업할 때 가끔씩 OPEN API 사용 경험을 물어보는 곳도 있었다.이미 많은 신입 개발자들이 포트폴리오를 만들면서 어떤 프로젝트에서는 OPEN API를 사용해봤을거라 생각되지만 정리하는 겸, 사용해보지 않은 분들도 가볍게 경험할 겸해서 OPEN API를 사용하는 방법에 대해 정리한다.공공데이터 포털 OPEN API 사용 프로세스1. 공공데이터 포털에 접속, ..
Java 성능 좋은 분기문을 쓰는 방법, if문에서 연산 순서 (if문에서 좋은 퍼포먼스를 만들기, && || 연산자 우선 순위) Java에서 좋은 if문 코드를 작성하는 방법 코드 분석을 하다가 우연히 if문의 '||' 연산자와 '&&' 연산자를 보면서 최적화에 대해 생각해보게 되었다.여러 참고 사이트를 보면서 나름대로 정리를 하게되었다.신입 개발자들도 한 번 정도 고려하면서 코딩을 하면 좋을 듯 하다.먼저, 좋은 if문 코드를 작성하기에 앞서서 자바 연산자 우선 순위를 알고 있어야 한다. < 이미지 출처 : http://noritersand.tistory.com/38 >결합 방향에 대해서는 최신 자바 기준으로 정확하지 않을 수 있으므로 우선 순위만 참고하면 된다.다양한 프로그래밍 언어들에서 연산자 우선 순위가 비슷하다보니 한 번 보고 넘기는 경우가 많은데 다시 한 번 상기시킬 필요가 있다.||, && 연산자 우선 순위와 단축 평..
DB 인덱스의 구조는 어떻게 되어있나요? 인덱스는 언제 적용해야하나요? 데이터베이스 인덱스(Database Index) 데이터베이스의 인덱스, 개발을 하면서 상당히 많이 들었다.RDBMS에서 대용량의 데이터(레코드)가 있을 때, 특정 데이터를 검색하기 위해서 테이블의 레코드를 full scan하는 것이 아니라, 인덱스가 적용된 컬럼의 테이블(컬럼, 인덱스주소)을 따로 파일로 저장해놓고 그것을 검색해서 검색 효율을 높이는 방법이다.1234SELECT /*+INDEX(EMP EMPNO_INDEX) */EMPNO, ENAMEFROM EMPWHERE DEPTNO=10 /*+HINT~~~~ */ 이런식으로 사용하는 것까지는 누구나 안다. (HINT의 종류는 검색해보면 많음)그러나 '왜 이렇게 일어나지?', '어떻게 동작하지?' 이런 고민을 해보지 않고 + 직접 '체득'하지 않은 사람..
제네릭(Generic)에 대한 모든 것(제네릭에 대해서 설명해주세요) 제네릭(Generic) 제네릭 타입을 이용해서 컴파일 과정에서 타입 체크를 할 수 있다.제네릭은 클래스와 인터페이스, 메소드를 정의할 때 타입 파라미터로 사용한다.* 제네릭을 사용하는 이유(=장점)1. 컴파일할 때 타입을 체크해서 에러를 사전에 잡을 수 있다.2. 컴파일러가 타입캐스팅을 해주기 때문에 개발자가 편리하다.3. 타입만 다르고 코드의 내용이 대부분 일치할 때, 코드의 재사용성이 좋아진다.123public class className{...} public interface interfaceName{...} * 클래스, 인터페이스에서 제네릭 타입파라미터 사용법- 실제 사용할 시에는 타입 파라미터에 구체적인 타입을 지정해야 함.1ArrayList list = new ArrayList(); Array..