객체 지향 프로그래밍 vs 절차 지향 프로그래밍
·
Study/Java
객체 지향 프로그래밍과 절차지향 프로그래밍은 서로 대치되는 개념이 아니다. 객체 지향이라도 프로그램의 작동 순서는 중요하다.다만 어디에 더 초점을 맞추는가에 둘의 차이가 있다. 객체 지향의 경우 객체의 설계와 관계를 중시한다.반면 절차 지향의 경우 데이터와 기능이 분리되어 있고, 프로그램이 어떻게 작동하는지 그 순서에 초점을 맞춘다.  절차 지향 프로그래밍절차 지향 프로그래밍은 이름 그대로 절차를 지향한다. 쉽게 이야기해서 실행 순서를 중요하게 생각하는 방식이다.절자 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 즉, "어떻게" 를 중심으로 프로그래밍 한다. 객체 지향 프로그래밍객체 지향 프로그래밍은 이름 그대로 객체를 지향한다. 쉽게 이야기해서 객체를 중요하게 생각하는 방식이..
스프링부트 스타터
·
Study/Java
앞선 글에서 웹 프로젝트를 하나 실행하려면 생각보다 수 많은 라이브러리가 필요하다.스프링 웹MVC, 내장 톰캣, JSON처리, 스프링부트 관련,LOG,YML등등 다양한 라이브러리가 사용된다.개발자 입장에서는 그냥 웹 프로젝트를 하나 시작하고 싶은 것이고, 일반적으로 많이 사용하는 대중적인 라이브러리들을 포함해서 간단하게 시작하고 싶을 것이다. 스프링 부트는 이런 문제를 해결하기 위해 프롲게트를 시작하는데 필요한 관련 라이브러리를 모아둔 스프링부트 스타터를 제공한다.스프링부트 스타터 덕분에 누구나 쉽고 편리하게 프로젝트를 시작할 수 있다.dependencies { //3. 스프링 부트 스타터 implementation 'org.springframework.boot:spring-boot-start..
스프링부트 라이브러리 버전 관리
·
Study/Java
스프링 부트가 제공하는 편리한 라이브러리 관리 기능을 사용 전에, 잠깐 과거로 돌아가 직접 라이브러리를 하나하나 고르고 설정하는 방법을 알아보자.plugins { id 'org.springframework.boot' version '3.0.2'// id 'io.spring.dependency-management' version '1.1.0' id 'java'}group = 'hello'version = '0.0.1-SNAPSHOT'sourceCompatibility = '17'//스프링 부트 외부 라이브러리 버전 변경//ext['tomcat.version']='10.1.4'configurations { compileOnly { extendsFrom annotationPr..
스프링 부트와 웹 서버 - 빌드와 배포
·
Study/Java
내장 톰캣이 포함된 스프링 부트를 직접 빌드해보기 jar 빌드./gradlew clean build  다음 위치에 jar 파일이 만들어진다.build/libs/boot-0.0.1-SNAPSHOT.jar jar 파일 실행java -jar boot-0.0.1-SNAPSHOT.jar  실행 결과스프링부트 애플리케이션이 실행되고, 내장 톰캣이 8080 포트로 실행된 것을 확인 할 수 있다. 컨트롤러 호출 확인HelloController.hello가 잘 찍히는걸 확인할 수 있다.  jar 압축 풀기build/libs폴더 이동jar -xvf boot-0.0.1-SNAPSHOT.jar` JAR를 푼 결과boot-0.0.1-SNAPSHOT.jarMETA-INFMANIFEST.MForg/springframework/bo..
스프링 부트와 웹 서버 - 실행과정
·
Study/Java
스프링 부트의 실행 과정package hello.boot;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class BootApplication { public static void main(String[] args) { SpringApplication.run(BootApplication.class, args); }}스프링 부트를 실행 할 때는 자바 main() 메서드에서 SpringApplication.run()을 호출해주면 된다.여기에 메인 설정 정보를 넘겨주는데, 보통 @SpringBo..
스프링 부트와 웹 서버
·
Study/Java
스프링 부트는 지금까지 고민한 문제를 깔끔히 해결해준다.내장 톰캣을 사용해서 빌드와 배포를 편리하게 해준다.빌드시 하나의 Jar를 사용하면서, 동시에 Fat Jar 문제도 해결한다.지금까지 진행한 내장 톰캣 서버를 실행하기 위한 복잡한 과정을 모두 자동으로 처리한다.필자는 스프링을 경험한 기간보다 부트를 사용한 기간이 길다. 물론 학원에 다닐때 프로젝트도 부트로 사용했다.이렇게 스프링부터 차근차근 경험을 해보니 스프링부트가 얼마나 편리하게 만들어져있고 자동화가 잘 되어있는지 느끼게 됐다.  Build.Gradleplugins { id 'java' id 'org.springframework.boot' version '3.0.2' id 'io.spring.dependency-management' versio..