spring boot
-
bank app3 - 모델링spring boot 2023. 4. 14. 13:58
bank app 모델링 - 3 TRM 기반으로 모델링을 해보자 Table Relational mapping은 데이터베이스의 테이블과 애플리케이션의 객체 간의 매핑을 의미합니다. MyBatis에서는 데이터베이스 쿼리를 XML 파일로 작성하고, Java 코드에서 이를 호출하는 방식으로 데이터베이스와의 상호작용을 수행합니다. XML 파일에서는 SQL 쿼리를 작성하고, Java 코드에서는 이를 호출하여 결과를 반환합니다. 1. 테이블 설계 2. 비지니스 로직 기본 확인 3. 모델링 구현 user.xml 파일 SELECT id, name, email FROM user WHERE id = #{id} 테이블 설계 및 제약 설정 mysql에서 먼저 연습 CREATE DATABASE bank; use bank; -- 유..
-
bank app2 - 네이밍spring boot 2023. 4. 14. 10:47
학습목표 패키지 및 폴더 구조 잡기 1. 정적 자원 관리 src/maiin/resources/static - 정적 자원 루트 폴더이다. css 폴더 생성 images 폴더 생성(서버가 기본적으로 가지고 있어야 하는 앱 아이콘 등) js 폴더 생성 2. 개발시 필요한 패키지 추가 src/main/resources db 패키지 생성 (.sql 파일 저장 - 초기 데이터 관리 ) mapper 패키지 생성(MyBatise 를 사용하기 위한 xml 파일 관리) 3.템플릿 엔진 JSP 사용할 폴더 설정 src/main/webapp 폴더 생성 WEB-INF 폴더 생성 view 폴더 생성 view - layout 폴더, user 폴더, account 폴더 (폴더를 분리해서 목적에 맞춰서 넣기) 4.자바 코드를 담을 패..
-
bank app1 - 프로젝트 설정spring boot 2023. 4. 14. 10:27
1. 프로젝트 생성(mybankapp) 2.의존성 설정 3.yml파일로 설정하기 4.h2 메모리 디비에 접근하기(http://localhost:8080/h2-console) 5.index.html 파일 연결 확인 (정적인 파일은 static폴더에) 6. git 설정 - tip 단축키를 다른 키로 설정할수 있다. 프로젝트 설정 - 1 1.프로젝트 생성 (mybankapp) spring project name명과 package명을 bankapp, bank로 맞춘다. 적용되는 라이브러리 설정 2.의존성 설정 dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lo..
-
Validationspring boot 2023. 4. 11. 14:15
학습 목표 Validation 에이해 Bean Validation API 사용 (어노테이션 기반) AOP 개념 적용 Validation 이란 프로그래밍에 있어서 가장 필요한 부분 중에 하나 입니다. 특히 자바에서는 null 값에 대해서 접근 하려고 할 때 Null Point Exception이 발생하기 때문에 이러한 부분을 방지 하기 위해서 미리 검증을 하는 과정을 Validation 이라고 합니다. 1. 검증해야 할 값이 많은 경우 코드의 길이가 길어 진다. 2. 구현에 따라서 달라 질 수 있지만 핵심 기능과의 분리가 필요 하다. 3. 흩어져 있는 경우 어디에서 검증을 하는지 알기 어러우며, 재사용의 한계가 있다. 4. 구현에 따라 달라 질 수 있지만, 검증 Logic이 변경 되는 경우 테스트 코드 등..
-
AOP 개념 살펴보기spring boot 2023. 4. 10. 16:05
관점 지향 프로그래밍 AOP(Aspect-Oriented Programming)는 OOP(Object-Oriented Programming)의 보완적인 개념으로, 프로그램을 구성하는 여러 모듈에서 공통적으로 사용하는 코드를 분리하여 재사용성과 유지 보수성을 향상 시키는 프로그래밍 기법입니다. Spring Boot에서 AOP를 사용하면, 프로그램의 여러 지점에서 반복적으로 사용되는 기능(로깅,보안 등)을 모듈화 하여 코드 중복을 줄이고, 코드 가독성과 유지보수성을 향상 시킬 수 있습니다. AOP는 프로그램의 핵심 기능에 영향을 미치지 않으면서도 부가적인 기능을 제공할 수 있습니다. AOP는 Aspect와 Advice를 사용하여 구현하며, @Aspect 어노테이션과 @Before, @After, @Point..
-
Maven이란?spring boot 2023. 4. 10. 14:15
DB접근해서 프로젝트를 하나 만들면 lib 폴더에다가 mysql 사이트에 다운을 받아 라이브러리를 넣어주고 다른 컴퓨터에 가서 프로젝트를 실행하면 lib 폴더에다가 다시 넣어줘야 했다. 이러한 불편함을 줄이기 위해 maven 이란 저장소에다가 라이브러리를 한곳에 모아둬서 사용한다. Gradle 프로젝트를 빌드 -> build.geadle : 기술만 하면 라이브러리들이 자동으로 다운로드 된다. Maven 방식 -> pon.xml : xml 형식으로 기술을 하면 자동으로 라이브러리 다운 처리 된다. window 컴퓨터 기준으로 .m2 폴더라는 숨김 폴더가 만들어 진다. 프로젝트에서는 그 위치를 참조해서 라이브러리를 땡겨 쓸 수 있게 된다. 사용자 > User > .m2 > repository 폴더에 라이브러..
-
제어의 역전과 의존 주입(Ioc / DI)spring boot 2023. 4. 10. 12:51
학습목표 Ioc 개념에 대해 이해 DI 개념에 대해 이해 Ioc(Inversion of Control, Ioc) 1. 스프링에서는 일반적으로 Java 객체를 new로 생성하여 개발자가 관리하는 것이 아닌 spring Container 에게 모두 맡긴다. 2. 개발자에게서 실행에 제어권을 프레임워크로 권한이 넘어 갔다라는 의미로 제어의 역전이라고 한다. 3. Ioc의 대상은 싱글톤으로 관리 됩니다. DI(Dependency Injection, DI) 의존성 주입 1. 필요할때 spring container 에서 가져와서 사용한다. - 의존성으로 부터 격리 시켜 코드 테스트가 용이하다. 루즈커플링이 가능하다. - 코드를 확장하거나 변경할 때 영향을 최소화 한다. (추상화) - 어떠한 객체를 작동시킬 때 클래..
-
스프링 핵심spring boot 2023. 4. 10. 11:35
https://spring.io/projects/spring-data Spring | Home Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform. spring.io 자바 객체지향 패러다임이랑 AOP 관점 중심 프로그램 패러다임 같이 쓴다. 어댑터처럼 local 추상화 코드로 짜는게 목적이다. POJO - 순수 자바코드로 돌아가게 하는게 목적 의존성 주입(Dependency Injection, DI): 프로그래밍에서 구성요소 간의 의존 관계가 소스코드 내부가 아닌 외부에서 설정을 통해 정의되는 방식이다. 코드 재사용을 높여 소스코드를 다양한 곳에 사용할 수 있으며 모듈..