CS

    Spring & Spring Boot 면접 질문

    Spring과 SpringBoot의 차이 SpringBoot는 Spring Framework 프로젝트를 간편하게 셋업할 수 있는 서브 프로젝트이다. 독립 컨테이너에서 동작할 수 있기 때문에 추가 WAS 설치 없이 내장된 톰캣으로 실행한다. Spring Framework 특징 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 어플리케이셔 프레임워크이다. 어플리케이션을 개발하는데 필요한 기능들을 제공해주기 때문에 개발자들은 개발에 집중할 수 있다. 경량 컨테이너로 자바 객체를 생성하고 조립하는 등 관리한다. POJO(순수한 자바 객체) 기반의 구성 의존성 주입(DI)을 통한 객체 간의 관계 구성 AOP: 관점 지향 프로그래밍 편리한 MVC 구조 WAS에 종속적이지 않은 개발 환경, 내장 서버(톰캣)이 ..

    객체지향 프로그래밍 & Java 면접 질문

    객체지향이란? 객체지향 프로그래밍이란 현실 세계의 사물들을 객체로 바라보는 인간 관점 프로그래밍 패러다임이라 할 수 있다. 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법 객체지향 프로그래밍 장점 코드 재사용이 용이하고 상속을 통한 확장이 가능하다. 클래스 단위로 모듈화가 되어있어 대형 프로젝트에 적합하고, 유지보수가 용이하다. 클래스와 객체의 차이점 클래스는 객체를 정의하는 틀, 설계도이다. 객체는 식별 가능한 개체 또는 사물을 뜻한다. 클래스를 통해 만들어지는 인스턴스를 대신해 말하기도 한다. C와 Java의 차이점 C는 절차 지향 언어이고, Java는 클래스를 이용한 설계적인 측면이 강조된 객체지향 언어라는 ..

    HTTP 상태코드

    HTTP 상태코드

    📌HTTP 상태코드 소개 💡상태코드란? 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이다. 1xx (Informational): 요청이 수신되어 처리중 (거의 사용 안함) 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동(작업)이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? 클라이언트는 상위 상태코드로 해석해서 처리한다 따라서 미래에 새로운 상태 코드가 추가되어도 클라이언트를 변경하지 않아도 된다 ex) 299 ??? -> 2xx ..

    HTTP 메소드 활용

    HTTP 메소드 활용

    📌클라이언트에서 서버로 데이터 전송 💡데이터 전달 방식 1.쿼리 파라미터를 통한 데이터 전송 GET 주로 검색어를 넣거나 정렬 조건을 넣을때 사용한다. 2.메시지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원 가입, 주문, 리소스 등록, 리소스 변경에 사용한다. 💡데이터 전송하는 4가지 경우 1. 정적 데이터 조회 이미지, 정적 텍스트 문서 전달 조회는 GET 사용 일반적으로 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능하다. 쿼리 파라미터로 추가적인 데이터 전달 없이 경로만 넣으면 그냥 이미지 리소스를 만들어서 보내준다. 2. 동적 데이터 조회 주로 검색, 게시판 목록에서 정렬 필터(검색어) 등에 사용한다. 조회 조건을 줄여주는 필터, 조회 결과를 정렬하는 정렬 조건에 주로 사용 ..

    HTTP 메소드 - GET,POST,PUT,PATCH,DELETE

    HTTP 메소드 - GET,POST,PUT,PATCH,DELETE

    HTTP 메소드는 클라이언트가 웹 서버에게 요청의 목적이나 종류를 알리는 수단이다. 📌GET GET 메소드는 데이터를 읽거나 검색하는 등 리소스를 조회할 때 사용한다. 그냥 단순히 리소스를 조회할 때만 사용하는 것이므로 데이터를 수정하는 연산에는 사용하면 안된다. 리소스 조회하는 메소드이기 때문에 요청시에 Body값이 비워져있다. 만약 특정 데이터를 조회하고 싶어서 GET방식에서 보낼 데이터가 있을 때에는 URL 주소에 파라미터를 붙여서 보내면 된다. 아래 [더보기]를 클릭하여 이미지를 참고하면 알 수 있듯이 데이터 조회에 성공한다면 Body 값에 데이터 값을 저장하여 성공 응답을 보낸다. 더보기 1. 클라이언트가 100번째 회원 정보 달라고 요청한다. 2. 서버는 해당하는 데이터를 가져와 응답 메시지를..

    HTTP 요청(request)/응답(response) 메시지 구조

    HTTP 요청(request)/응답(response) 메시지 구조

    📌HTTP 메시지 구조 💡요청 라인(Request-Line) HTTP 요청 메시지의 첫 라인은 메소드와 요청하는 자원, 프로토콜 버전으로 구성 된다. 메소드 요청하는 자원에 대해 웹 서버에게 내리는 명령이다. 종류로는 GET, POST, HEAD, PUT, DELETE, TRACE, CONNECT, OPTIONS 등이 있다. 요청 URI 요청하는 자원의 식별자이다. 즉 HTML이나 이미지, 동영상, 애플리케이션 등이 있는 가상의 경로이다. 웹 서버는 이 식별자를 사용하여 해당 자원을 찾는다. HTTP 버전 요청 정보가 어떤 버전에 맞추어 작성했는지 웹 서버에게 알려주기 위함이다. ※HTTP 요청 메시지에서 body 본문 위 이미지에서 초록색 테두리고 되어 있는 것은 요청 헤더의 끝을 표시하는 공백 라인이..

    HTTP 프록시란?

    HTTP 프록시란?

    📌프록시 서버(Proxy Server)란? 프록시 서버란 클라이언트와 서버 사이에서 통신을 중계해 주는 컴퓨터나 프로그램을 말한다. 프록시 서버의 주된 용도 중 하나는 빠른 전송을 위하여 서버의 응답 결과를 캐시에 저장해 두는 것이다. 예를 들어 클라이언트가 요청한 응답 결과를 캐시에 저장해 둔 경우 다음에 다시 요청을 하였을 때 외부 서버에 요청을 전달하지 않고 즉시 캐시에 저장된 내용을 전달하기 때문에 클라이언트는 빠른 응답 결과를 받을 수 있게 된다. 프록시 서버의 두 번째 용도는 바로 보안이다. 프록시 서버를 이용하면 외부로 전달되는 데이터를 검사하여 보안을 정도를 올릴 수 있다. 📌HTTP 모니터링 웹 브라우저와 웹 서버 사이에 주고받는 데이터를 들여다보기 위해서는 HTTP 프록시 프로그램이 필..

    HTTP 프로토콜이란?

    HTTP 프로토콜이란?

    웹 어플리케이션은 웹을 기반으로 구동되기 때문에 웹 프로그래밍을 하려면 웹 브라우저와 웹 서버 간의 통신 프로토콜을 이해해야 한다. 이 프로토콜을 HTTP(Hyper-Text Transfer Protocol)이라고 부른다. 📌HTTP(Hyper-Text Transfer Protocol) 프로토콜이란? HTTP 프로토콜은 웹 브라우저와 웹 서버 사이의 데이터 통신 규칙이다. 우리가 웹 페이지를 불러올 때, 웹 브라우저는 HTTP 요청 형식에 따라 웹 서버에 데이터를 보낸다. 그럼 웹 서버는 웹 브라우저가 보낸 데이터를 분석하여 요청 받은 일을 처리하여 응답한다. 즉 HTTP 요청 형식에 따른 데이터를 분석하였을 때, 이미지 파일을 요청하는 것이면 해당 파일을 찾아서 보내주고, HTML 파일을 요청하면 찾아..