전체 글 107

[Spring] Spring Bean과 의존 관계(Dependency Injection)

❑ 의존 관계가 필요한 상황 @Controller public class MemberController { private final MemberService memberService = new MemberService(); } public class MemberService { } 위와 같이 MemberController가 MemberService 클래스를 사용(의존)하고 있다고 가정하자. MemberController는 새롭게 초기화되는 MemberService가 아닌 1개만 생성되어 사용할 객체가 필요하다면 Spring Dependency Injection(의존성 주입) 기능을 통해 의존관계를 설정해주는 것이 좋다. ❑ 컴포넌트 스캔과 자동 의존관계 설정 Spring Bean과 의존 관계 설정 @Co..

Back-End/Spring 2021.07.09

[Spring] 강한 결합(Tight Coupling)과 느슨한 결합(Loose Coupling)

의존성 주입(DI: Dependency Injection)과 IoC(Inversion Of Control) 컨테이너는 Spring의 기본이자 핵심 기능 중 하나다. Spring을 이해하기 위해서 가장 먼저 학습해야할 내용이다. DI를 배우기에 앞서 강한 결합 대비 느슨한 결합의 이점을 보며 외부 의존성 주입(DI)의 필요성에 대해 학습할 필요가 있다. ❑ 강한 결합(Tight Copuling)Class DiagramCode ExampleAS-IS) GasolineEngine 참조public class Car { private GasolineEngine gasolineEngine = new GasolineEngine(); public void ride() { gasolineEngine.useOil(); ...

Back-End/Spring 2021.07.04

자주 사용하는 IntelliJ 단축키

Window ↔ Mac Key Ctrl ↔ Command 탐색(Search) 객체 정의 찾아가기 또는 객체가 사용 되는 곳 찾아가기: Command + B 또는 Command + 마우스 클릭 최근 실행했던 파일을 확인: Command + E 또는 Ctrl + E 해당 항목이 사용된 모든 곳 표시: Alt + F7 모든 항목 검색: Shift shift (연속 2번 누르기) 텍스트 검색(Find in Files): Command + Shift + F 이전 화면(이전 커서)으로 돌아가기: Ctrl + Option + →, ← (Win: Ctrl+Alt+→, ←) 타입(클래스) 계층 구조 보기: Control+H (Win: Ctrl+H) 클래스 내 정의된 메서드, 변수 구조: Command + F12 Code..

IntelliJ 2021.07.03

[Spring] 웹 개발 기초 개념 - 정적 컨텐츠, MVC와 템플릿 엔진, API

❑ 간단 요약 정적 컨텐츠: html을 그대로 웹 브라우저에 전달하는 것 MVC와 템플릿 엔진: 서버에서 html을 수정, 가공하여 전달하는 방식 API: 서버에서 html을 전달하는 것이 아니라, JSON, XML 방식으로 데이터만 Client에게 전달하여 Client가 직접 View를 그리는 방식. 최근에는 API 방식으로 많이 개발되고 있으며, 서버끼리 통신할때도 html을 내릴 필요가 없기 때문에 API 방식을 많이 사용한다 ❑ 정적 컨텐츠(Static Contents) Spring Boot Reference Doc > Spring Boot Features > 7.1.5. Static Content 를 보면 기본적으로 String Boot는 static content를 서비스 한다고 나와있다. B..

Back-End/Spring 2021.07.02

[Spring] Welcome Page 생성, MVC 이해하기

❑ Welcome Page 만들기 Spring Boot는 static에 Index.html을 올려두면 Welcome Page 기능을 제공한다 정적(static) Page를 만들어서 넣는 곳 Project Explorer > src > main > resource > static 위와 같이 HTML File을 선택해 Index라는 파일명으로 추가한 뒤 아래와 같이 수정한다 Index.html Welcome to HYPeoples Page1 open Page2 open 다만, Index.html 역시 정적(statIc) 페이지이므로 Controller에 별도로 @GetMapping("/")으로 연결된 메서드가 있다면 Index.html이 아닌 해당 메서드가 return하는 html 페이지가 열리게 된다. W..

Back-End/Spring 2021.06.29

[Spring] 프로젝트 생성 및 환경설정

❑ Spring 프로젝트 만들기 Spring 프로젝트 생성 URL: https://start.spring.io/ Spring Boot SNAPSHOT은 정식 Release 버전이 아닌 테스트 버전이다 Project Metadata Group: 보통 회사명을 적는다 ex) com.samsung Artifact: Build 된 결과물 Dependencies: 사용할 Library 선택 Spring Web: 웹 프로젝트 만드는데 사용 Thymeleaf: HTML을 만들어주는 템플릿 엔진. 회사마다 사용하는게 다르다 위에까지 세팅한 후 GENERATE 클릭하면 바탕화면에 생성됨(Artifact명 또는 Name) ❑ IntelliJ에서 프로젝트 환경설정 Spring Project Open IntelliJ 실행 후..

Back-End/Spring 2021.06.28

[OOP] 좋은 객체 지향 프로그래밍이란

❑ 객체 지향 프로그래밍의 정의 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.(협력) 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점을 갖고 있다. 출처: Wikipedia ❑ 유연하고, 변경이 용이하다? 유연하고 변경이 용이하다는 뜻은 다음과 같은 특징을 가진 것으로 볼 수 있다 레고 블럭 조립하듯이 컴퓨터 부품 교체하듯이 컴포넌트를 쉽고 유연하..

OOP 2021.06.27