BackEnd 🌱/spring
[spring] 좋은 객체 지향 설계의 5가지 원칙(SOLID)
1. SRP 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 중요한 기준은 변경이다. 변경이 있을 때 파급효과가 적으면 단일 책임 원칙을 잘 따른 것이다. ex) UI 변경, 객체의 생성과 사용을 분리 2. OCP 개방-폐쇄 원칙 (중요) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 따라서, 다형성을 활용해보면, 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현할 수 있다. 3. LSP 리스코프 치환 원칙 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. 즉, 다형성에서 하위 클래스는 인터페이스 규약을 지켜야 한다는 것이다. 예를들어, 자동차 인터페이스의 엑셀은 앞으로 가라는 기능이다. 엑셀을 뒤로 가..
JAVA - 인터페이스(Interface)
인터페이스(Interface)란? 추상 메서드의 집합을 의미한다. 추상 메서드의 집합이므로, 구현된 메소드는 가질 수 없다. 즉, 구현된 것이 전혀 없는 설계도이자 껍데기라고 볼 수 있다. 다중상속가능 : 자식 클래스가 여러 부모 인터페이스를 상속가능하다. 메소드 오버라이딩 필수 : 자식 클래스는 부모 인터페이스의 함수를 모두 오버라이딩해야 한다. 모든 멤버 변수는 public static final 이어야 하며, 이를 생략할 수 있다. 모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있다. interface sample1 { public static final 변수명 = 값; //상수 public abstract 메서드이름(매개변수); //추상메서드 } interface Mov..
[Spring] 정적 컨텐츠, MVC와 템플릿 엔진, API
본 포스팅은 김영한 님의 스프링 입문강의 섹션 2를 듣고 요약한 내용입니다. [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 정적 컨텐츠 resources/static 안에 html을 생성한 뒤 서버에서 접속하면 html 내용이 그대로 뜹니다. 웹 브라우저에서 localhost:8080/hello-static.html로 http 요청을 보내면, 내장 톰켓 서버에서 요청을 받은 후 스프링 컨테이너로 가서 hello-static 관련 컨트롤러가 존재하는지 검색합니다. 찾지 못했다면, resour..
[spring] 프로젝트 생성, 빌드, 실행
본 포스팅은 김영한 님의 스프링 입문강의 섹션 1를 듣고 요약한 내용입니다. [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 프로젝트 생성 스프링 부트 스타터 사이트에서 스프링 프로젝트를 생성합니다. https://start.spring.io/ 제가 선택한 option은 이렇습니다. (자바 11버전 사용중) Project : Gradle - Groovy Language : Java Spring Boot : 2.7.7 Group : hello (기업의 도메인, 이름을 작성하는 곳) Artifa..
[spring] WEB 서버와 WAS 서버의 차이
목차 웹 서버란? 웹 애플리케이션 서버란? 차이점 Web서버와 WAS의 분리 들어가며 spring-boot 를 공부하면서 내장 웹 서버로 톰캣이 있는 것을 알게 되었는데, 왜 웹 애플리케이션 서버와 웹 서버를 따로 두는지 궁금해서 한 번 정리를 해 보았습니다. 웹 서버 (Web server)란? 웹 서버(Web server)는 HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램을 말합니다. 웹서버의 가장 큰 특징으로는, 정적인 페이지만을 반환한다는 점이 있습니다. 정적인 페이지(Static Pages)란? html, image, JavaScript 파일 등 컴퓨터에 미리 저장되어 있는 파일들이 그대로 전달되는 웹 페이지를 말합니..