Back-end
-
이번시간에는 지난 시간에 다루었던 서블릿을 만들어볼 것입니다. Part1에서 계속 다루었던 계산기 서블릿을 만들어보겠습니다. 이론 - 서블릿 만들어보기에 앞서 서블릿에 대한 간단한 이론 설명을 하도록 하겠습니다. 사진을 보시면 맨 위에 Servlet 인터페이스가 있고, 이를 구현한 GenericServlet, 그리고 이를 상속할 HttpServlet 이 있습니다. 이번 포스팅에서 계산기를 만들면서는 HttpServlet을 상속하여 만들 것입니다. 하지만, 서블릿 인터페이스와 제네릭 서블릿, 그리고 최종적으로 HttpServlet이 왜 등장하게 되었는지는 계산기 프로그램을 서블릿으로 만들어보면서 설명하도록 하겠습니다. Servlet 인터페이스는 호출 규약이라고 볼 수 있습니다. 즉, 서블릿 컨테이너(톰캣)..
[Spring] Part 1-4-3. 나만의 MVC 프레임워크 만들기 | 계산기 서블릿 만들기이번시간에는 지난 시간에 다루었던 서블릿을 만들어볼 것입니다. Part1에서 계속 다루었던 계산기 서블릿을 만들어보겠습니다. 이론 - 서블릿 만들어보기에 앞서 서블릿에 대한 간단한 이론 설명을 하도록 하겠습니다. 사진을 보시면 맨 위에 Servlet 인터페이스가 있고, 이를 구현한 GenericServlet, 그리고 이를 상속할 HttpServlet 이 있습니다. 이번 포스팅에서 계산기를 만들면서는 HttpServlet을 상속하여 만들 것입니다. 하지만, 서블릿 인터페이스와 제네릭 서블릿, 그리고 최종적으로 HttpServlet이 왜 등장하게 되었는지는 계산기 프로그램을 서블릿으로 만들어보면서 설명하도록 하겠습니다. Servlet 인터페이스는 호출 규약이라고 볼 수 있습니다. 즉, 서블릿 컨테이너(톰캣)..
2023.01.15 -
1. CGI 프로그램과 서블릿 CGI란? CGI는 웹 서버와 애플리케이션 사이에 데이터를 주고 받는 규약입니다. CGI 규칙에 따라서 만들어진 프로그램을 CGI 프로그램이라고 할 수 있는 것입니다. CGI 프로그램 종류로는 컴파일 방식 (C, C++, Java 등)과 인터프리터 방식(PHP, Python 등)이 존재합니다. 위 그림은 웹서버와 CGI 규칙을 통해서 데이터를 주고 받는 프로그램을 도식화한 것입니다. 인터프리터 방식 CGI 프로그램 인터프리터 방식 CGI 프로그램에서 웹서버는 Script engine(스크립트 엔진)을 실행시키며, 스크립트 엔진은 스크립트 파일을 해석하여 웹서버에게 결과값을 리턴하는 방식의 프로그램입니다. 위 그림에서 웹서버와 스크립트 엔진 사이 CGI 규칙을 통해 통신을 한..
[Spring] Part 1-4-2. 나만의 MVC 프레임워크 만들기 | CGI 프로그램과 서블릿 (Servlet)1. CGI 프로그램과 서블릿 CGI란? CGI는 웹 서버와 애플리케이션 사이에 데이터를 주고 받는 규약입니다. CGI 규칙에 따라서 만들어진 프로그램을 CGI 프로그램이라고 할 수 있는 것입니다. CGI 프로그램 종류로는 컴파일 방식 (C, C++, Java 등)과 인터프리터 방식(PHP, Python 등)이 존재합니다. 위 그림은 웹서버와 CGI 규칙을 통해서 데이터를 주고 받는 프로그램을 도식화한 것입니다. 인터프리터 방식 CGI 프로그램 인터프리터 방식 CGI 프로그램에서 웹서버는 Script engine(스크립트 엔진)을 실행시키며, 스크립트 엔진은 스크립트 파일을 해석하여 웹서버에게 결과값을 리턴하는 방식의 프로그램입니다. 위 그림에서 웹서버와 스크립트 엔진 사이 CGI 규칙을 통해 통신을 한..
2023.01.13 -
1. 목표 이번 시간에는 계산기 프로그램을 웹 애플리케이션으로 만들어보면서 웹 애플리케이션에 대해 이해를 해보도록 하겠습니다. 계산기 프로그램을 총 세 단계로 나누어서 개발해 볼 것인데요. 각 단계는 아래와 같습니다. Step1 - 사용자 요청을 메인 Thread가 처리하도록 한다. Step2 - 사용자 요청이 들어올 때마다 Thread를 새로 생성해서 사용자 요청을 처리하도록 한다. Step3 - Thread Pool을 적용해 안정적인 서비스가 가능하도록 한다. 그렇다면 만들어보기 전에 먼저 HTTP 프로토콜에 대해서 조금 알아보도록 하겠습니다. 2. HTTP 프로토콜 이해 HTTP 프로토콜은 서버와 클라이언트가 웹에서 데이터를 주고받기 위한 프로토콜(규약)입니다. HTTP를 통해서는 거의 모든 종류의..
[Spring] Part 1-4-1. 웹 애플리케이션 이해 (+계산기 프로그램 실습)1. 목표 이번 시간에는 계산기 프로그램을 웹 애플리케이션으로 만들어보면서 웹 애플리케이션에 대해 이해를 해보도록 하겠습니다. 계산기 프로그램을 총 세 단계로 나누어서 개발해 볼 것인데요. 각 단계는 아래와 같습니다. Step1 - 사용자 요청을 메인 Thread가 처리하도록 한다. Step2 - 사용자 요청이 들어올 때마다 Thread를 새로 생성해서 사용자 요청을 처리하도록 한다. Step3 - Thread Pool을 적용해 안정적인 서비스가 가능하도록 한다. 그렇다면 만들어보기 전에 먼저 HTTP 프로토콜에 대해서 조금 알아보도록 하겠습니다. 2. HTTP 프로토콜 이해 HTTP 프로토콜은 서버와 클라이언트가 웹에서 데이터를 주고받기 위한 프로토콜(규약)입니다. HTTP를 통해서는 거의 모든 종류의..
2023.01.13 -
2. 객체 지향 개념 다지기 객체 지향이란? 사실, 이 질문에 대한 정답은 존재하지 않는 것 같습니다. 그말인 즉슨, 각자 자신만의 객체 지향을 생각하는 신념(?)과 같은 것이 있을 뿐이고 프로그래밍에 정답이 없는 것과 마찬가지입니다. 하지만 중요한 점은 여러분들이 자신있는 언어에 대해서 자신만의 견해를 가지고 대답을 할 수 있는지가 중요한 것입니다. 객체지향에 한 견해에 대해 말씀드리기 전에 먼저 객체지향이 갖고 있는 4가지의 특징에 대해서 말씀드리려 합니다. 1. 추상화 (Abstraction) 2. 다형성 (Polymorphism) 3. 캡슐화 (Encapsulation) 4. 상속 (Inheritance) 이 4가지는 객체지향을 다른 패러다임과 구분짓는 중요한 특징입니다. 각각에 대해 간단한 설명..
[Spring] Part 1-3-2. 나만의 MVC 프레임워크 만들기 | 객체지향 개념 다지기 + 실습2. 객체 지향 개념 다지기 객체 지향이란? 사실, 이 질문에 대한 정답은 존재하지 않는 것 같습니다. 그말인 즉슨, 각자 자신만의 객체 지향을 생각하는 신념(?)과 같은 것이 있을 뿐이고 프로그래밍에 정답이 없는 것과 마찬가지입니다. 하지만 중요한 점은 여러분들이 자신있는 언어에 대해서 자신만의 견해를 가지고 대답을 할 수 있는지가 중요한 것입니다. 객체지향에 한 견해에 대해 말씀드리기 전에 먼저 객체지향이 갖고 있는 4가지의 특징에 대해서 말씀드리려 합니다. 1. 추상화 (Abstraction) 2. 다형성 (Polymorphism) 3. 캡슐화 (Encapsulation) 4. 상속 (Inheritance) 이 4가지는 객체지향을 다른 패러다임과 구분짓는 중요한 특징입니다. 각각에 대해 간단한 설명..
2023.01.09 -
1. 테스트코드 실습 테스트코드 실습에서는 자바 단위 테스팅 프레임워크인 JUnit5를 사용하도록 할 것입니다 JUnit5에 대해서 추가적인 학습을 원하시는 분들을 위해 아래 공식 문서 링크를 첨부해 두었습니다. JUnit 5 User Guide Although the JUnit Jupiter programming model and extension model do not support JUnit 4 features such as Rules and Runners natively, it is not expected that source code maintainers will need to update all of their existing tests, test extensions, and custo jun..
[Spring] Part 1-3-1. 나만의 MVC 프레임워크 만들기 | 테스트 코드란?1. 테스트코드 실습 테스트코드 실습에서는 자바 단위 테스팅 프레임워크인 JUnit5를 사용하도록 할 것입니다 JUnit5에 대해서 추가적인 학습을 원하시는 분들을 위해 아래 공식 문서 링크를 첨부해 두었습니다. JUnit 5 User Guide Although the JUnit Jupiter programming model and extension model do not support JUnit 4 features such as Rules and Runners natively, it is not expected that source code maintainers will need to update all of their existing tests, test extensions, and custo jun..
2023.01.09 -
1. Intro 이번에는 웹 프로젝트 개발 환경을 구성해 보도록 하겠습니다. 2. 웹 프로젝트 환경 구성 2-1. 프로젝트 생성 먼저 프로젝트를 생성해 주겠습니다. 위와 같은 설정을 마치고 create 버튼을 누르면 해당 디렉터리에 파일이 생성되게 됩니다. 아래 사진과 같이 말입니다. 위 부분에서 저는 org.example이라는 패키지가 자동으로 만들어졌는데 혹시나 만들어지지 않으신 분들은 src > main > java 밑에 org.example이라는 패키지를 새로 만들어 주시길 바랍니다. 또한 그 밑에는 Main이라는 자바 파일이 있을텐데요 해당 클래스명을 위 사진과 같이 WebApplicationServer로 바꾸어 주었습니다. 이는 main 메소드를 실행했을 때 톰캣이 실행되도록 하기 위한 밑작업..
[Spring] Part 1-2. 나만의 MVC 프레임워크 만들기 | Gradle 개발 환경 구성하기 (with 도커|Docker)1. Intro 이번에는 웹 프로젝트 개발 환경을 구성해 보도록 하겠습니다. 2. 웹 프로젝트 환경 구성 2-1. 프로젝트 생성 먼저 프로젝트를 생성해 주겠습니다. 위와 같은 설정을 마치고 create 버튼을 누르면 해당 디렉터리에 파일이 생성되게 됩니다. 아래 사진과 같이 말입니다. 위 부분에서 저는 org.example이라는 패키지가 자동으로 만들어졌는데 혹시나 만들어지지 않으신 분들은 src > main > java 밑에 org.example이라는 패키지를 새로 만들어 주시길 바랍니다. 또한 그 밑에는 Main이라는 자바 파일이 있을텐데요 해당 클래스명을 위 사진과 같이 WebApplicationServer로 바꾸어 주었습니다. 이는 main 메소드를 실행했을 때 톰캣이 실행되도록 하기 위한 밑작업..
2023.01.09 -
1. Intro 시작에 앞서서 해당 내용은 패스트캠퍼스 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring)의 내용을 토대로 정리한 것임을 알려드립니다. 저는 앞서서 Javascript 기반의 Node.js로 서버를 개발해 본 경험이 있지만 웹 전반적인 이해를 바탕으로 한 것이 아니라 우선 맡겨진 프로젝트를 수행하기 위해서 먼저 부딪혀 보고 하나씩 익혀한 경우였기 때문에 중간 중간 비어있는 개념이 있음을 느끼게 되었습니다. 그래서 이번 강좌를 들어보고 혼자 공부해 보면서 전반적인 기초 개념을 익히는데 중점을 두어 공부를 했고 이에 대한 내용을 정리한 포스팅이 되겠습니다. 2. 오리엔테이션 강의 목표 객체지향 프로그래밍에 대한 이해 HTTP 프로토콜 및 HTTP 웹 서버 동작 원리 이해 MVC ..
[Spring] Part 1-1. 나만의 MVC 프레임워크 만들기 | 시작 및 자바 설치편1. Intro 시작에 앞서서 해당 내용은 패스트캠퍼스 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring)의 내용을 토대로 정리한 것임을 알려드립니다. 저는 앞서서 Javascript 기반의 Node.js로 서버를 개발해 본 경험이 있지만 웹 전반적인 이해를 바탕으로 한 것이 아니라 우선 맡겨진 프로젝트를 수행하기 위해서 먼저 부딪혀 보고 하나씩 익혀한 경우였기 때문에 중간 중간 비어있는 개념이 있음을 느끼게 되었습니다. 그래서 이번 강좌를 들어보고 혼자 공부해 보면서 전반적인 기초 개념을 익히는데 중점을 두어 공부를 했고 이에 대한 내용을 정리한 포스팅이 되겠습니다. 2. 오리엔테이션 강의 목표 객체지향 프로그래밍에 대한 이해 HTTP 프로토콜 및 HTTP 웹 서버 동작 원리 이해 MVC ..
2023.01.06