
AOP 란? - AOP 란 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍을 의미. - 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것. - 핵심적인 관점 : 핵심 비즈니스 로직. 로직의 존재 이유. - 부가적인 관점 : 해당 로직에 걸리는 시간, 로그, DB 연결 등 공통적인 로직 - AOP의 취지 : 부가적인 로직을 여러 메서드에 일일이 넣는것 대신 관점별로 모듈화하여 재사용하도록 함. -> 효율성↑ 1. AOP가 필요한 상황 - 상황 : 모든 메소드가 동작하는 시간을 측정하라. 회원가입, 회원조회 등의 메소드에 시간을 측정하는 기능은 핵심적인 관점이 아니라 부가적인 관점이다. 회원가입, 회원조회 등의 메..

스프링 데이터 엑세스의 여러가지 방법을 과거의 방법부터 알아보자. 순수 JDBC JDBC Template JPA 스프링 데이터 JPA 방법 1. 순수 JDBC - 고대의 개발자들이 고생고생한 방법. 그랬구나 하고 참고만 하자. - 순서 build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가 + build gradle 스프링 부트 데이터베이스 연결 설정 추가 Jdbc 리포지토리 구현 DataSource를 통해 Connection을 연결한다. sql문을 작성한다. (String) PrepareStatement에 Connection과 sql문을 담음. PrepareStatement에 담긴 sql에 파라미터로 전달받은 값을 넣는다. PrepareStatement.excuteUpdate(..

1. 홈 화면 추가 - localhost:8080 을 입력하면 나타나는 홈 화면을 만들 것이다. - 기존에 localhost:8080 를 입력하면 resources > static > index.html 을 보여줬다. - 하지만 Controller에 해당 주소("/")를 매핑하면 우선순위가 Controller > static 이므로 home.html로 이동한다. 이전글(https://laugh4mile.tistory.com/186?category=919488) 참고. 2. 등록 - MemberController에 메소드 생성 + 관련 html 작성. - MemberForm 클래스 생성. 이때 반드시 html의 input name="name"과 setter가 매칭되어야 한다. - ex) name - set..

1. DI 란? - 생성자에 @Autowired 가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다. - 이렇게 객체 의존관계를 외부에서 넣어주는 것을 DI (Dependency Injection), 의존성 주입이라 한다. - DI에는 필드 주입, setter 주입, 생성자 주입 이렇게 3가지 방법이 있다. 의존관계가 실행중에 동적으로 변하는 경우는 거의 없으므로 생성자 주입을 권장한다. Question 생성자 주입을 권장하는 이유는 무엇인가요? Answer 1. 순환 참조 방지 필드 주입이나 수정자 주입으로 DI할 경우 참조순환이 발생할 수 있다. 이는 실제로 메소드를 실행하기 전까지는 에러가 나는지 알 수 없다. 하지만, 생성자 주입을 통하여 DI할 경우 어플리케이션 실행단계에서 순..

1. 비즈니스 요구사항 정리 - 매우매우 간단히 진행할 거임. 데이터 : 회원 ID, 이름 기능 : 회원 등록, 조회 DB는 아직 정해지지 않음 - 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 (ex. ID 중복검사) 레포지토리 : DB 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등등 주로 DB에 저장하고 관리됨) - 클래스 의존관계 DB가 정해지지 않았기 때문에, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계. 향후에 RDB로 할지, JPA로 할지 구체적인 기술이 선정되면 바꿔끼울것임. 따라서 인터페이스를 정의하는것. 개발을 진행하기 위해서 초기 개발 단계에서는 구현체..

1. 정적 컨텐츠 - static 폴더에 html 파일 작성하면 끝. (ex. hello-static.html) - 해당 주소를 입력하면 Tomcat은 Controller에 관련 컨트롤러가 존재하는지 찾아본다. -> 없다. - 관련 컨트롤러가 존재하지 않으면 static/hello-static.html을 찾는다. 있으면 반환한다. 2. MVC와 템플릿 엔진 - MVC 란 : Model, View, Controller - controller에 메서드 작성 + template에 매핑되는 html 작성 - 해당 주소를 입력하면(@RequestParam() 이 있다면 쿼리스트링을 통해 넘겨줘야함) Tomcat은 Controller에 관련 컨트롤러가 존재하는지 찾아본다. -> 있다. - 모델에 정보를 담아 Vie..

0. IntelliJ 설치, Java 11 설치 1. h2 데이터베이스 1.4.200 버전 설치 https://www.h2database.com/html/download.html Downloads Downloads Version 2.0.202 (2021-11-25) Windows Installer (SHA1 checksum: f6f6f91c67075a41ce05bdfc4499ee987dacb02e) Platform-Independent Zip (SHA1 checksum: e4a6c2e54332304cb4acbe48b55f9421c7f4b870) Version 1.4.200 (2019-10-14), Last Stable Windows Installe www.h2database.com - 설치 후 윈도우는 ..

Q. 프로젝트 생성시 의존성 설치는 뭘 할까? Spring Boot DevTools Lombok Spring Data JPA MySQL Driver SpringSecurity Spring Web Q. MySQL 환경세팅 - 권한 설정 및 한글설정(utf-8) https://www.youtube.com/watch?v=GuHhQP0897s&list=PL93mKxaRDidECgjOBjPgI3Dyo8ka6Ilqm&index=5 Q. application.properties 와 application.yml의 차이 https://youtu.be/G6fgEiI_pEA?t=83 => 들여쓰기로 인해 중복되는 코드가 줄어진다. Q. Git 세팅 github 레포지토리 생성 git 설치 프로젝트 우클릭 -> Git Bas..
- Total
- Today
- Yesterday
- map
- 리액트 네이티브
- g4
- 다익스트라
- 그리디
- PriorityQueue
- react native
- 시뮬레이션
- DFS
- react
- 자바
- 객체지향
- BFS
- 백트래킹
- 알고리즘
- S2
- 우선순위큐
- 코딩새내기
- 백준
- 리액트
- 현꾸라지
- Spring
- G5
- laugh4mile
- S3
- SWEA
- java
- 구현
- Spring Boot
- 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |