놀코에 오신 것을 환영합니다.

놀아보자 코드랑

Study/기술면접 7

[기술면접] CS 기술면접 질문 - 프로그래밍 공통 (1/8)

[기술면접] CS 기술면접 질문 - 프로그래밍 공통 (1/8) 1. 프로그래밍 공통 [ OOP란 ] OOP는 현실 세계를 프로그래밍으로 옮겨와 현실 세계의 사물들을 객체로 보고, 그 객체로부터 개발하고자 하는 특징과 기능을 뽑아와 프로그래밍하는 기법입니다. OOP로 코드를 작성하면 재사용성과 변형가능성을 높일 수 있습니다. [ OOP의 5가지 설계 원칙 ] SRP(Single Responsibility Principle, 단일 책임 원칙): 클래스는 단 하나의 목적을 가져야 하며, 클래스를 변경하는 이유는 단 하나의 이유여야 한다. OCP(Open-Closed Principle, 개방 폐쇠 원칙): 클래스는 확장에는 열려 있고, 변경에는 닫혀 있어야 한다. LSP(Liskov Substitution Pr..

Study/기술면접 2021.08.12

[기술면접] CS 기술면접 질문 - 데이터베이스 (6/8)

[기술면접] CS 기술면접 질문 - 데이터베이스 (6/8) 6. 데이터베이스 [ 인덱스(index)란? ] 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아 보는것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색인을 추가하는데, 데이터베이스의 index는 책의 색인과 같다. 데이터베이스에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 돕고 있다. 만약 Index를 적용하지 않은 컬럼을 조회한다면, 전체를 탐색하는 Full Scan이 수행된다..

Study/기술면접 2021.08.12

초보 웹 개발자를 위한 학습 안내서

경력있는 신입 많은 회사가 개발자가 부족하다고 하는데, 신입 개발자는 취업이 어려운 게 현실입니다. 아무래도 예전보다 개발자에게 원하는 요구사항이 많아졌고, 경력 있는(?) 신입이나 특별한 교육이 필요 없는 개발자를 찾기 때문인 것 같습니다. 예전에라떼는 Git이나 GitHub 같은 버전 관리 시스템도 없고 JavaScript는 마우스 오버 시 버튼의 이미지 바꾸는 정도로만 사용했습니다. API는 Win32 API 같은 거 부를 때 쓰는 말이지 지금처럼 브라우저에서 동적으로 서버랑 통신하는 건 마법 같은 기술이었습니다. WEB 2.0 시대가 지나고 웹 기술이 폭발적으로 성장하면서 예전이랑은 비교할 수 없을 만큼 시스템이 복잡하고 고도화되었습니다. 빠르게 발전한 기술만큼 개발자가 공부해야 할 내용도 많아졌..

Study/기술면접 2021.08.11

IT/기술면접 - 브라우저로 웹사이트에 접속할 때 일어나는 일들 (DNS)

당신이 인터넷으로 웹 페이지에 접속 할 때 어떤 네트워크 작용이 일어나는지 설명하는 것. "어느정도로 자세히 설명해야하는가?" 에 대한 명확한 기준은 없지만, 대학 시절 배운 지식만으로도 충분히 자세히 설명할 수 있다. 이 세상의 대부분 웹 서버는 모두 IP 주소를 가지고 있다. 당신이 인터넷을 서핑하는 것도, 해당하는 IP주소로 접속하여 그 웹서버가 제공하는 데이터를 보는 것이다. 즉, 브라우저에 IP 주소를 직접 입력하면 이 포스팅에서 설명할 대부분 과정을 생략하고 웹 사이트에 접속할 수 있다. ▶네이버의 IP주소를 직접 입력하여 접속한 모습, nslookup 명령어로 DNS서버에서 IP주소를 찾았다. 이렇게 접속하면 속도도 뭔가 빠른것 같고(실제로 더 빠르긴 하지만 체감하기 어렵다.) 전과 다름없는..

Study/기술면접 2021.08.11

IT/기술면접 - 웹 아키택처와 WAS(Wep Application Server)

이번 포스팅에서는 웹 어플리케이션의 동작에서 핵심적인 역할을 하는 WAS에 대해 다룬다. 웹 서버(Web Server)와 혼동하는 사례가 잦아, 면접 전에 정리할 필요가 있는 개념이다. 먼저 이해를 돕기 위해 웹 아키택처에 대한 이야기를 꺼내려고 한다. ▶ 2-tier 아키택처의 구조도. 클라이언트가 서버의 DB에 직접 접속한다. 3-tier(혹은 N-tier) 아키택처가 등장하기 전, 웹 애플리케이션들은 주로 2-tier 아키택처를 활용했다. 클라이언트가 직접 서버에 접속하여, 서버의 자원을 활용하는 방식이었으므로 개발이 편리했다. 하지만 2-tier 아키택처에서의 웹 애플리케이션은 보안에 취약했고, 유지보수도 어려웠다. 그래서 등장한 것이 3-tier 아키택처이다. ▶ 3-tier 아키택처의 구조도 ..

Study/기술면접 2021.08.11

IT/기술면접 - Servlet, CS, 네트워크, Spring

1. Servlet에 대해 답변해 보세요. Servlet: 자바 플랫폼에서 웹 앱을 개발할 때 사용하는 핵심기술. 컨트롤러와 뷰의 역할 분담이 가능해진다. 자바 API를 모두 사용할 수 있으며 다양한 서버 환경에서 실행 가능하다. 스레드를 기반으로 한다. Servlet Container: Servlet을 서버에서 실행하기 위한 서버 프로그램(서버는 서블릿 자체를 직접 실행할 수 없기 때문). JVM을 내장하고 있다. 2. 서블릿의 라이프 사이클에 대해 설명하세요. init(): 컨테이너는 서블릿 인스턴스를 생성한 다음 init() 메소드를 호출한다. 이 메소드는 service()메소드 전에 실행되어야 한다. 클라이언트의 요청을 처리하기 전에 서블릿을 초기화할 기회를 주는것이다. 초기화할 코드가 있다면 i..

Study/기술면접 2021.08.11