분류 전체보기 132

9. 정적 페이지와 동적 페이지

정적 페이지 처리하기static 폴더에서 New -> HTML File파일 이름은 "hello"로 지정Hello, Spring 정적 웹 페이지!! (static)이 코드를 작성한다.SpringBoot 서버에 html 파일을 바로 요청하면 해당 html 파일을 static 폴더에서 찾아서 반환해준다. 그렇다면 Controller를 거쳐서 html을 반환할 수도 있을까? 물론 가능하다. 하지만 이미 완성된 정적인 html 파일을 Controller를 통해서 반환할 필요는 없다. Controller를 통해서 반환하는 것을 테스트 하려면 implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' 해당 dependency를 주석 처리해야 테스트..

8. Controller 이해하기

프로젝트 생성IntelliJ를 실행 -> New Project 클릭Next이렇게 추가해준다.Controller의 장점Servlet Code@WebServlet(urlPatterns = "/user/login")public class UserLoginServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) { // ... }}@WebServlet(urlPatterns = "/user/logout")public class UserLogoutServlet extends HttpServlet { @Override protected void doGet(..

7. Spring MVC란 무엇일까?

MVC 디자인 패턴이란?MVC란 Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나이다. MVC 패턴은 소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리한다. --- Model 데이터와 비즈니스 로직을 담당한다. 데이터베이스와 연동하여 데이터를 저장하고 불러오는 등의 작업을 수행한다.View 사용자 인터페이스를 담당한다. 사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현한다.Controller Model과 View 사이의 상호작용을 조정하고 제어한다. 사용자의 입력을 받아 Model에 전달하고, Model의 결과를 바탕으로 View를 업데이트한다. MVC 패턴은 소프트웨어를 구성하는 요소들을 분리함으로써 코드의 재사용..

5. Lombok과 application.properties

Lombok이란? Lombok은 자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메서드/성성자 등을 자동 생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리이다.---- 설치 인텔리J 실행 환경설정 Windows : Ctrl + Alt + S MacOS : command + , 검색창에 "Annotation Processors" 입력 후, 우측 "Enable ~" 체크하고 OK 클릭 Shift 두 번 누르고 plugins 입력 후 엔터 lombok을 검색해서 Installed가 되지 않은 상태라면 아래처럼 생긴 아이콘의 우측 Install 버튼 클릭 -> Intellij 재시작다시 Shift 두 번 누르고 plugins 입력 후 Enter Lombok을 검색했을 때 installed 상태라면 설..

4. 테스트 코드

버그를 미리 걸러내기 위해 테스트가 필요하다. 치명적인 버그가 터지면 회사에 큰 손실을 입힐 수 있기 때문이다. 1. 블랙박스 테스팅블랙박스 테스팅이란 소프트웨어 내부 구조나 동작원리를 모르는 블랙박스와 같은 상태에서, 즉 웹 서비스의 사용자 입장에서 동작을 검사하는 방법이다.장점 누구나 테스트가 가능하다 --단점기능이 증가될 수록 테스트의 범위가 증가한다.시간이 갈수록 테스트하는 사람이 계속 늘어야 한다.테스트하는 사람에 따라 테스트 퀄리티가 다를 수 있다 -> QA 직군이 있는 이유2. 개발자 테스트개발자가 직접 "본인이 작성한 코드"를 검증하기 위해 "테스트 코드"를 작성한다. 장점 빠르고 정확한 테스트가 가능하다 (예상 동작 VS 실제 동작) 테스트 자동화가 가능하다 배포 절차 시 테스트 코드가 ..

3. HTTP란 무엇일까?

HTTP(HyperText Transfer Protocol)란?데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나가 HTTP이다.매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약이다.여기서 말하는 통신 규약이란, 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속을 의미한다.누군가가 나에게 한국어로 말을 걸면 바로 이해할 수 있지만 갑자기 중국어나 불어로 말하면 알아듣지 못한다.마찬가지로 컴퓨터끼리 데이터를 주고 받을 때 정해진 규칙 없이 매번 요청하는 방식이 다르다면 소통에 큰 문제가 발생한다.현재 이용되는 대부분의 웹 서버가 HTTP를 기반으로 정해진 규칙에 맞게 데이터를 주고 받는다.또한, 모든 브라우저는 HTTP 프로토콜을 기본으로 지원하기 때문에 우리는 매일 HTTP를 이..

2. 서버란 무엇인가?

클라이언트(브라우저)에서 서버로 정보를 요청하는 과정을 간략하게 표현한 그림 사용자는 브라우저를 이용하여 서버에 정보를 요청하고 응답을 받는다. 웹 서버란?웹 서버는 인터넷을 통해 HTTP를 이용하여 웹상의 클라이언트의 요청을 응답해주는 통신을 하는 컴퓨터이다. 오늘날 우리가 자주 사용하는 이메일이나 SNS 등 대부분의 서비스는 웹 서버를 통해 우리가 사용할 수 있게 되었다. 1. 브라우저를 통해 HTTP Request로 웹사이트를 웹서버에 요청한다. 2. 이후 웹서버는 요청을 승인하고 HTTP Response를 통해 웹사이트 데이터를 브라우저에 전송한다. 3. 마지막으로 브라우저는 서버에서 받아온 데이터를 이용해 웹사이트를 브라우저에 그려내는 일을 한다. * 기본적으로 브라우저가 웹서버에 요청을 할때는..

1. 그레이들이란 무엇인가(버전, 라이브러리와 관련됨)

원래라면 successful로 완료되어야 하지만 오류가 발생했다. 일단 프로젝트를 완전 삭제하고 다시 프로젝트를 gradle 포함해서 다시 만들어서 해결했다.실행가능한 jar 파일이 있는것을 확인  그 다음 build.gradle은 gradle 기반의 build 스크립트다. 이 스크립트를 작성하면 소스코드를 빌드하거나 라이브러리들의 의존성을 쉽게 관리할 수 있다. 이것은 Groovy 언어 또는 Kotlin 언어로 작성할 수 있다. 우리는 Groovy 언어로 작성하기로 한다.   build.gradle에서 가장 중요한 것은 바로 라이브러리를 관리한다는 것이다. 우리가 개발을 하면서 필요한 외부 라이브러리들이 굉장히 많다. 그런 라이브러리들을 dependencies 부분에 작성을 하면 gradle이 해당 라..