스프링 SPRING
[SPRING 입문] 2. 스프링 웹 개발 기초
1. 정적 컨텐츠 스프링 부트 정적 컨텐츠 기능 https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content resources/static/hello-static.html static content 정적 컨텐츠 입니다. 실행 http://localhost:8080/hello-static.html 2. MVC와 템플릿 엔진 MVC: Model, View, Controller Controller @Controller public class HelloController { @GetMapping("hello-mvc") public S..
[SPRING 입문] 1. 프로젝트 환경 설정
1. 프로젝트 생성 사전 준비 Java 11 설치 IDE: IntelliJ 또는 Eclipse 설치 (저는 IntelliJ IDEA Ultimate 버전으로 진행하였습니다.) 주의! 가급적 JDK 11버전을 설치를 권장한다. 다른 버전을 설치하면 정상 작동하지 않을 가능성이 높음. 프로젝트 선택 Project: Gradle Project Spring Boot: 2.3.x Language: Java Packaging: Jar Java: 11 Project Metadata groupId: hello artifactId: hello-spring Dependencies: Spring Web, Thymeleaf Gradle 전체 설정 build.gradle plugins { id 'org.springframewo..
JSON이란 무엇일까?
JSON (JavaScript Object Notation) JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식 Javascript에서 객체를 만들 때 사용하는 표현식을 의미한다. JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용한다. JSON은 데이터 포맷일 뿐이며 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법일 뿐이다. JSON 특징 서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다. 자바스크립트 객체 표기법과 아주 유사하다. 자바스크립트를 이용하여 JSON 형식의 문서를 쉽게 자바스크립트 ..
API란?
API란? API는 애플리케이션 소프트웨어를 빌드하고 통합하기 위한 정의 및 프로토콜 세트인 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)를 뜻한다. 인터페이스(Interface) 인터페이스(interface)는 컴퓨터 시스템끼리 정보를 교한하는 공유 경계를 의미한다, 터치 스크린과 같은 일부 컴퓨터 하드웨어 장치들은 인터페이스를 통해 데이터를 송수신 할 수 있으며, 마우스나 마이크론 폰가 같은 장치들은 오직 시스템에 데이터를 전송만 하는 인터페이스를 제공한다. 인터페이스는 말 그대로 어떤 기계간의 장치끼리 정보를 교환하기 위한 수단이나, 방법을 의미한다. 예를 들어서 우리가 집에서 TV를 켜기 위해서 리모콘을 들고 TV에 리모콘 전원 버튼을 누름으로써 ..
MVC란 무엇일까? | MVC 패턴
MVC 패턴이란? MVC란 Model-View-Controller의 약자로 애플리케이션을 세 가지 역할로 구분한 개발 방법론이다. 아래의 그림처럼 사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해 시각적 표현을 제어하여 사용자에게 전달하게 된다. 이러한 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시작적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있게 된다. 위의 개념을 WEB에 적용 시! 사용자가 웹사이트에 접속 (Users) Controller는 사용자가 요청한 웹페이지를 서비스하기 위해서 모델을 호출 (Mani..
톰캣이 무엇을 의미할까? 아파치란?
스프링을 공부하다가 영한님이 언급하시는 톰캣 서버에 대해 의문이 생겨서 기록하려 한다. 어렴풋이는 알고 있지만, 정확하게는 몰랐던 톰캣, 아파치에대해 확실하게 알아보자! 아파치(apache)란? 세계에서 가장 많이 쓰는 웹 서버중 하나이며, 아파치 소프트웨어 재단에서 관리하는 HTTP 웹 서버이다. Apache는 Apache재단에서 만든 HTTP서버로 워낙 다양한 추가기능에, 구축이 쉽다는 이유 때문에 많이 쓰고 있다. 대부분의 중소기업들은 무료이기 때문에 많이 쓰인다. 톰캣이란(Tomcat)? 톰캣은 아파치 소프트웨어 재단의 웹 어플리케이션 서버(와스)로서, 자바 서블릿을 실행키고 JSP코드가 포함되어 있는 웹 페이지를 만들어준다. 자바 서블랫과 JSP 규격의 '참조용 구현'으로 평가되고 있는 톰캣은,..
[인텔리제이] 인텔리제이 단축키 정리 | 외워야하는 단축키 정리
스프링 공부하다가 정리하는 인텔리제이 필수 단축기 필수 단축키 단축키 설명 Ctrl + Shift + Space 적합한 코드 자동완성을 추천 (Smart Code Completion) Shift + Shift 파일, 클래스, 설정 등 키워드에 관련된 가능한 모든 것을 검색 (Search Everywhere) Alt + Enter 퀵픽스 제안 (Show intention actions and quick-fixes) Alt + Insert 생성자, Getter/Setter, toString과 같은 코드 생성 (Lombok으로 대체 가능) Ctrl + P 커서가 위치한 메서드의 매개변수 조회 Ctrl + W 커서 근처의 코드 선택 영역 확대 Ctrl + Shift + W 커서 근처의 코드 선택 영역 축소 Ct..
[스프링 SPRING] 인텔리제이 Getter and Setter 게터 세터 단축키
스프링 부트를 공부하며 Intellij를 사용하다가 강사님이 게터 세터 단축키를 상당히 많이 활용하시길래... 나처럼 방법이 궁금한 사람들을 위해 기록한다. Getter, Setter를 생성해주는 단축키 활용법! setter setter는 만든 클래스 앞에 set이라는 접두어가 붙어 만들어진다. 단축키는 Alt + Insert 같은 방식으로 getter method도 만들 수 있다. getter getter는 만든 클래스 앞에 get이라는 접두어가 붙어 만들어진다. 단축키는 Alt + Insert 그 외 Constructor, toString등 다양한 메서드들을 만들 수 있다.
[SPRING] 스프링 입문 | 스프링 웹 개발 기초
[1. 정적 컨텐츠] 정적 컨텐츠는 만들어진 파일 그대로 사용자에게 전달된다. 서버에서의 작업이 필요하지 않다. 스프링 문서 - Static Content Spring Boot는 정적 컨텐츠를 /static ( /public , /resources , /META-INF/resources )에서 제공한다. 기본적으로, resources는 /** 에 매핑된다.. resources > static > hello-static.html static content 정적 컨텐츠 입니다 [실행 결과] http://localhost:8080/hello-static.html /hello-static.html 요청을 받고, 내장 톰캣 서버는 컨트롤러에서 hello-static을 찾는다. 없는 경우, resources에서 파..
[SPRING] 스프링 입문 | 프로젝트 환경 설정하기
[1. 프로젝트 생성] https://start.spring.io 에서 스프링 프로젝트를 생성할 수 있다. Build는 코드를 컴파일, 패키징, 테스트. 배포 등의 작업들을 말한다. Build Tool 이란 말 그대로 Build를 도와주는 도구로, 작업들을 일관되게 할 수 있다. 1. Maven VS. Gradle 고르기 여기서 Maven 과 Gradle을 선택할 수 있다. Maven으로 프로젝트를 생성하게 되면 pom.xml이 생성되고, Gradle로 프로젝트를 생성하게 되면 build.gradle, settings.gradle이 생성된다. Maven은 정형화된 빌드 시스템으로, 플러그인으로 구동되어 build를 진행하게 된다. Gradle은 JVM 기반의 빌드 시스템으로, Task 기반으로 작업을 수..