[Spring 핵심원리 - 기본] 객체 지향 설계와 스프링
Back-End/Spring2024. 1. 26. 00:55[Spring 핵심원리 - 기본] 객체 지향 설계와 스프링

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 자바 진영의 표준 기술이었던 Enterprise Java Beans (EJB)는 복잡하고 어려우며 의존적이고 느렸음. 스프링 2002년 로드 존슨 책 출간 EJB의 문제점 지적 지금의 스프링 핵심 개념과 기반 코드가 들어있음 BeanFactory, ApplicationContext, POJO, 제어 역전, 의존관계 주입 단순함의 승리 현재 사실상 표준 기술 EJB 엔티티빈 기술을 대체 -> 하이버네이트 -> JPA JPA는 인터페이스이다. 따라서 구현체가 필요한데, 대표적인 구현체는 하이버네이트, EclipseLink 등이 있다. 스프링 생태계 스프링은 여러 가지 기술들의 모음. 스프링 프레임워크: 스프링의 핵..

[Spring 입문] AOP (Aspect Oriented Programming)
Back-End/Spring2024. 1. 25. 00:42[Spring 입문] AOP (Aspect Oriented Programming)

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. AOP가 필요한 상황 몇개의 메서드에 실행시간을 체크해보고싶은 상황이라고 한다면 해당 메서드들의 시작과 끝에 시간을 측정하고 출력하는 코드를 붙여야할 것이다. 다행히 그게 몇개 밖에 되지않는다면 괜찮겠지만 만약 몇십개, 몇백개라면 노가다 작업을 해야할 것이다. 예를 들어, AOP를 적용하지 않고, 각 메서드마다 실행시간을 측정을 해야한다면 아래와 같은 문제점을 만나게 된다. 회원가입, 회원 조회에 시간을 측정하는 기능은 핵심 관심 사항이 아니다. 시간을 측정하는 로직은 공통 관심 사항이다. 시간을 측정하는 로직과 핵심 비즈니스의 로직이 섞여서 유지보수가 어렵다. 시간을 측정하는 로직을 별도의 공통 로직으로 만들..

[IntelliJ] 자주 사용하는 단축키 정리
Back-End/기타2024. 1. 24. 09:19[IntelliJ] 자주 사용하는 단축키 정리

Maccommand + shift + t : 테스트 케이스 생성option + enter : static importcommand + option + v : 리턴 값을 받아줄 변수 자동 생성command + n : 생성자, getter, setter 등 자동 생성command + d : 라인 복제ctrl + t : 리팩토링option + command + m : 메서드 추출 리팩토링 (extract method)command + shift + 왼쪽 or 오른쪽 : 프로젝트 탐색창 좌우 크기조절command + option + b + 클릭: 인터페이스의 구현체 리스트를 보여줌command + p : 생성자 목록command + e : 최근 실행 파일shift + shift : 전체 검색command + d..

[Spring 입문] 스프링 DB 접근 기술
Back-End/Spring2024. 1. 24. 00:48[Spring 입문] 스프링 DB 접근 기술

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. H2 데이터베이스 설치 H2 데이터베이스는 개발이나 테스트 용도로 가볍고 편리한 DB, 웹 화면 제공한다. https://www.h2database.com/html/main.html 위 사이트에서 H2 데이터베이스를 설치한다. 브라우저 창이 열리면서 다음과같은 화면이 출력된다. JDBC URL : jdbc:h2:~/test (최초 한번 입력)를 입력한다. ~/test는 home에 있는 test파일을 의미한다. window에서 home은 사용자 폴더가 된다. 사용자명과 비밀번호는 건드리지 않고 [연결] 버튼을 누른다. 그러면 해당 폴더에 위와 같은 파일이 생성된다. 아래와같이 H2 Database에 연결이되며, ..

[Spring 입문] 회원관리 예제 - 웹 MVC 개발
Back-End/Spring2024. 1. 23. 00:07[Spring 입문] 회원관리 예제 - 웹 MVC 개발

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 홈 화면 추가 HomeController를 통해 html 연결하기 controller 패키지에서 HomeController 클래스를 하나 생성한다. @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } @Controller 어노테이션을 붙여준다. 그리고 @GetMapping을 통해 "/"를 연결시킨다. /은 도메인의 첫번째 주소를 말한다. 즉, localhost:8080/ 에 접속했을 때 이 메서드가 호출이 되는 것이다. 이후 return 값으로 home을 반환한다. 따라서 이 메서드가..

[Spring 입문] 스프링 빈과 의존관계
Back-End/Spring2024. 1. 22. 00:04[Spring 입문] 스프링 빈과 의존관계

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 아래의 글에 연관이 있는 포스팅입니다. 2024.01.21 - [Java Category/Spring] - [Spring 입문] 회원 관리 예제 - 백엔드 개발 회원 가입하고 그 결과를 html을 통해 화면에 띄우려고 하는데, 그러러면 Controller와 View template가 필요하다. MemberController를 만들어서 사용해야 하는데, MemberController가 MemberService를 통해서 회원 가입을 하고, 데이터 조회를 해야 한다. 이런 것을 "MemberController가 MemberService를 의존한다" 라고 표현한다. 따라서 회원 컨트롤러가 회원서비스와 회원 리포지토리를..

[Spring 입문] 회원 관리 예제 - 백엔드 개발
Back-End/Spring2024. 1. 21. 00:32[Spring 입문] 회원 관리 예제 - 백엔드 개발

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 비즈니스 요구사항 정리 데이터 : 회원 ID, 이름 기능 : 회원 등록(단, 중복 이름 허용X), 회원 조회 아직 DB가 선정되지 않은 상황 (가상의 시나리오) 일반적인 웹 애플리케이션 계층 구조 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 (예를 들어 회원 중복 가입 허용 안됨과 같은 로직들 또한 비즈니스 도메인 객체를 가지고 핵심 비즈니스 로직이 동작하도록 구현한 객체) 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 (아직 DB가 선정되지 않은 상태로 가정) 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 클..

[Spring 입문] 스프링 웹 개발 기초
Back-End/Spring2024. 1. 20. 00:12[Spring 입문] 스프링 웹 개발 기초

이 글은 인프런 김영한님의 Spring 강의를 바탕으로 개인적인 정리를 위해 작성한 글입니다. 웹을 개발하는 방법에는 크게 세 가지가 있다. 1. 정적 컨텐츠 (static contents) 서버에서 따로 가공을 거치지 않고 파일을 웹 브라우저에 그대로 보내는 방식이다. 2. MVC와 템플릿 엔진(template engine) 과거의 JSP, PHP 같은 것들이 template engine이다. 정적 컨텐츠처럼 html을 웹 브라우저에 그대로 보내는 것이 아니라, 데이터를 가공 해서 html을 동적으로 바꿔서 웹 브라우저에 보내는 일을 한다. 이런 방법을 사용하기 위해서는 Model, View, Controller가 필요한데, 이를 합쳐서 MVC라고 부른다. 정적 컨텐츠와의 차이점 html을 웹 페이지에..

image