Back-end/Spring
-
9. 관심사의 분리와 MVC 패턴 - 이론 9-1. 관심사의 분리 (Separation of Concerns) package com.fastcampus.ch2; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.Calendar; @Controller public ..
[Spring] 관심사의 분리와 MVC 패턴9. 관심사의 분리와 MVC 패턴 - 이론 9-1. 관심사의 분리 (Separation of Concerns) package com.fastcampus.ch2; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.Calendar; @Controller public ..
2023.03.25 -
1. 원격 프로그램의 실행 로컬 프로그램 실행 Main이라는 프로그램이 어떤 컴퓨터에 있을 때 이를 로컬 프로그램이라고 하면 이 프로그램을 실행시키기 위해선 'java Main\n' 을 Command Line에 입력하면 되는데 여기서 java는 java.exe(자바인터프리터)를 의미하고 뒤의 Main 클래스의 main() 메소드를 호출하여 프로그램이 실행된다는 의미를 갖는다. "자바인터프리터로 Main 프로그램 실행해 줘." 해당 프로그램을 실제로 커맨드에서 실행해 보면 Hello라는 문구가 콘솔에 출력되고 다음 입력을 기다리는 커서가 깜빡거리는 상태가 될 것이다. 이 자바인터프리터가 객체를 새로 생성하지 않고도 main 메소드를 호출할 수 있는 이유는 main 메서드가 static 메서드이기 때문이다...
[Spring] HTTP 요청과 응답(feat. AWS 배포, MIME, Base64, 설정파일)1. 원격 프로그램의 실행 로컬 프로그램 실행 Main이라는 프로그램이 어떤 컴퓨터에 있을 때 이를 로컬 프로그램이라고 하면 이 프로그램을 실행시키기 위해선 'java Main\n' 을 Command Line에 입력하면 되는데 여기서 java는 java.exe(자바인터프리터)를 의미하고 뒤의 Main 클래스의 main() 메소드를 호출하여 프로그램이 실행된다는 의미를 갖는다. "자바인터프리터로 Main 프로그램 실행해 줘." 해당 프로그램을 실제로 커맨드에서 실행해 보면 Hello라는 문구가 콘솔에 출력되고 다음 입력을 기다리는 커서가 깜빡거리는 상태가 될 것이다. 이 자바인터프리터가 객체를 새로 생성하지 않고도 main 메소드를 호출할 수 있는 이유는 main 메서드가 static 메서드이기 때문이다...
2023.03.25 -
1. Sping의 등장 배경 Spring Framework에 대해서 알아보기 전에 자바 웹 개발의 발전 과정에 대해서 먼저 알아보겠다. 아래 포스팅에서 더 자세히 다루었으니 한 번 읽어보면 도움이 될 것이다. [BackEnd] 자바/스프링(Java/Spring)와 Node.js | 대기업은 자바, 스타트업은 Node.js? (Spring과 Node.js 중에 고 이번에 포스팅 할 주제는 자바/스프링과 Node.js의 차이점에 대한 내용입니다. 각각이 나오게 된 이유와 어떠한 이유로 사용되고 있는지에 대해 역사부터 시작하여 차근차근 적었으니 굉장히 알 cdragon.tistory.com Applet은 "작은 Application"(let이 작다라는 뜻)이라는 의미를 가지고 있는데 이는 브라우저에서 돌아가도..
[Spring] Spring 시작하기1. Sping의 등장 배경 Spring Framework에 대해서 알아보기 전에 자바 웹 개발의 발전 과정에 대해서 먼저 알아보겠다. 아래 포스팅에서 더 자세히 다루었으니 한 번 읽어보면 도움이 될 것이다. [BackEnd] 자바/스프링(Java/Spring)와 Node.js | 대기업은 자바, 스타트업은 Node.js? (Spring과 Node.js 중에 고 이번에 포스팅 할 주제는 자바/스프링과 Node.js의 차이점에 대한 내용입니다. 각각이 나오게 된 이유와 어떠한 이유로 사용되고 있는지에 대해 역사부터 시작하여 차근차근 적었으니 굉장히 알 cdragon.tistory.com Applet은 "작은 Application"(let이 작다라는 뜻)이라는 의미를 가지고 있는데 이는 브라우저에서 돌아가도..
2023.03.14 -
1. JDBC 개념 소개 JDBC(Java Database Connectivity)란 자바 애플리케이션에서 DB(Database) 프로그래밍을 할 수 있도록 도와주는 표준 인터페이스입니다. 표준 인터페이스이기 때문에 DBMS 종류와 상관이 없습니다. JDBC 인터페이스들을 구현한 구현체들은 각 데이터베이스 벤더 사들이 제공해주고 있으며, 이를 'JDBC Driver'라고 합니다. 자바 코드에서는 보통 JDBC 인터페이스에만 의존하기 때문에 DB를 변경하더라도 코드를 변경하지 않아도 됩니다. 위 이미지가 앞서 설명한 내용을 나타내는 것입니다. 이에 대해 더 자세한 내용은 실습을 통해 진행하도록 하겠습니다. 2. DB 커넥션 풀 개념 소개 2-1. DBCP (Database Connection Pool) D..
[Spring] Part 1-5. 나만의 MVC 프레임워크 만들기 | JDBC 프로그래밍(+CRUD)1. JDBC 개념 소개 JDBC(Java Database Connectivity)란 자바 애플리케이션에서 DB(Database) 프로그래밍을 할 수 있도록 도와주는 표준 인터페이스입니다. 표준 인터페이스이기 때문에 DBMS 종류와 상관이 없습니다. JDBC 인터페이스들을 구현한 구현체들은 각 데이터베이스 벤더 사들이 제공해주고 있으며, 이를 'JDBC Driver'라고 합니다. 자바 코드에서는 보통 JDBC 인터페이스에만 의존하기 때문에 DB를 변경하더라도 코드를 변경하지 않아도 됩니다. 위 이미지가 앞서 설명한 내용을 나타내는 것입니다. 이에 대해 더 자세한 내용은 실습을 통해 진행하도록 하겠습니다. 2. DB 커넥션 풀 개념 소개 2-1. DBCP (Database Connection Pool) D..
2023.01.16 -
이번시간에는 지난 시간에 다루었던 서블릿을 만들어볼 것입니다. 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