분류 전체보기 211

스프링 MVC 2 - 서블릿, jsp, MVC 패턴

1. domain, repository 도메인, 리포지토리 생성 repository로 바로 service역할까지 수행 package hello.servlet,domain.member; // 회원 도메인 모델 = entity model @Getter @Setter public class Member { private Long id; //repository에서 id 자동으로 줌 // 생성자 주입으로 받음 private String username; pirvate int age; public Member(){}; public Member(String username, int age){ this.username = username; this.age = age; } } public Member findAll(){..

framework/spring 2023.11.04

스프링 MVC 1 - 서블릿

프로젝트 생성 tip Dependencies: Spring web, Lombok War 외장 톰컷 서버 별도 설치 및 jsp 사용시 선택 Gradle : Gradle -> IntelliJ IDEA Lombok plugin -> lombok 설치 -> 재시작 Annotation Processors -> Enable annotation processing 체크 후 재시작 1. 서블릿 기본 사용법 레거시 : tomcat(=sevlet was) 직접 설치 -> 서블릿 코드를 class file로 빌드 스프링부트: 톰캣 서버 내장(embedded) -> 서블릿 코드만 실행 서블릿은 스프링관 관련이 없다. 스프링은 서블릿을 더 편하게 사용할 수 있도록 스프링 web mvc를 가지고 있을 뿐이다. 1.1. @Serv..

framework/spring 2023.11.04

네이밍 컨벤션

1. java naming Convention 1.1.공통 대소문자가 구분되며 길이에 제한이 없다. 예약어를 사용해선 안된다. 숫자로 시작하면 안된다. 특수문자는 _ $ 만 사용 가능 ps. 구글 컨벤션에선 $ 쓰지 말라고 했던 거 같음 PascalCase, camelCase 사용 반의어는 반드시 대응하는 개념으로 사용 반의어 영어 반의어 한글 get set 받다 받다 add remove 추가 제거 create destroy 창조 파괴하다 start stop 시동 정지 insert delete 삽입 삭제 increment decrement 증가 감소 old new 구 신 begin end 시작 끝 girst last 기어, 먼저, 처음 마지막 up down 위 아래 min max 최소 최대 next pr..

java 컨벤션 가이드 - google

1. 코딩 컨벤션 종류 goole java 컨벤션 가이드 오라클 java 컨벤션 가이드 네이버 java 컨벤션 가이드 참고 - sql 컨벤션 오라클 SQL & PL/SQL Optimization 1.1 IntelliJ 적용 하기 기본적으로 IntelliJ용으로 셋팅이 되어있다. 네이버 컨벤션 포맷 구글 켄벤션 포맷 위 링크에서 IntelliJ용 xml 포맷터 다운로드 IntelliJ IDEA - Preferences > Editor > Code Style Scheme 우측 톱니바퀴 > Import Scheme > IntelliJ IDEA code style XML 클릭 다운로드 받은 XML 포맷터를 찾아서 적용 2. 소스 파일 기본 사항 소스파일 .java 클래스파일 .class 바이너리 파일 컴파일러 ..

MVC 패턴 및 패키지 구조

1. spring project도 아닌데 왜 mvc 패턴을 고려? 자동차 경주 게임을 구현할 때까지만 해도 크게 중요성을 느끼지 못하고 있었다. 내가 만든 분류 안에서 코드가 다 동작했으니...하지만 TDD를 수행할 때 문제점을 깨달았다. 내가 분류한 조건들이 단일체계원칙을 실질적으로 지키고 있지 않았기 때문에 TDD를 수행할 수가 없었다. 출력과 기능이 섞여서 method는 대부분 void로 반환 값이 존재하지 않았고 TDD로 검증도 불가... 향후 리팩토링을 할 경우에도 TDD가 안되니 수정 코드가 올바르게 작동한다는 보장이 없다... 해당 문제점을 인지하고 어떤 방식으로 패키지를 분류해야할지 고민하고 찾아보던 중 mvc 패턴을 사용한다는 힌트를 얻었다. 꼭 Spring이 아니더라도 해당 구조로 분류..

framework/spring 2023.10.31

Git commit 컨벤션 및 템플릿

1. Git Commit 컨벤션 커밋 메시지는 제목, 본문, 꼬리말 3가지 파트로 나뉘고 각 파트는 빈줄을 두어서 구분 # git commit type(옵션): ["해시태그"issueNumber -] Subject # -> 제목 : 최대 50글자, 마침표 X, 영문 표기시 동사원형, 첫char 대문자 body(옵션) # -> 본문 : 어떻게 X, 무엇을 왜 O , 75자 남기지 말 것 footer(옵션) # -> 꼬리말 : issue tracker ID를 명시하고 싶은 경우 작성 # 예시 Feat: "추가 로그인 함수" 로그인 API 개발 Resolves: #123 Ref: #456 Related to: #48, #45 1.1. 제목 1.1.1. 타입 태그와 제목으로 구성, 태그는 영어로 쓰되 첫문자는 ..

⭐️ 3. Web & WAS 경로

1. web server, web app server 웹 http 기반으로 작동 = http protocol의 규칙을 따라서 요청과 응답이 오고 간다. http 메시지 거의 모든 형태의 데어터 전송 가능 ex) HTML, TEXT, IMAGE, 음성, 영상, 파일, JSON, XML (API) 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 2. 용어 2.1. 웹 서버(WEB) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 webServer가 가지고 있는 html,css.js.img,avi 를 client가 요청시, http로 응답해주는 것 ex) NGINX, APACHE 2.2. 웹 애플리케이션 서버(WAS) HTTP 기반으로 동작 웹 서버 기능 포함 + (정적 리소스 제공 가능) 프..

framework/spring 2023.10.30

스프링 핵심 원리 이해 8 - bean scope

1. bean scope scope: 범위, bean이 존재할 수 있는 범위 1.1. scope 종류 싱글톤 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입 스프링 컨테이너가 프로토타입 빈의 생성 → 의존관계 주입 → 초기화 메서드 까지 관여 (spring bean 생명 주기) 이후는 관리하지 않는 매우 짧은 범위의 스코프 종료 callback 없음 웹 관련 스코프 request: 웹 요청이 들어오고 나갈때 까지 유지되는 스코프 session: 웹 세션이 생성되고 종료될 때 까지 유지되는 스코프 application: 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프 싱글톤, 프로토타입, request 정도 알면 충분 웬만하면 싱글톤으로 처리를 하는 것을 권..

framework/spring 2023.10.29

스프링 핵심 원리 이해 7 - bean 생명주기 callback

1. 빈 생명주기 콜백 시작 Spring bean 생성, 종료 직전 @Bean 객체 내부 method를 호출해주는 기능 생성후 초기화시 호출 죽기 직전 안전 종료 메서드 호출 필요한 이유 db connection pool, network socket처럼 app시작 시점에 필요한 연결을 미리 해둘 경우 app 종료 시점에 연결을 모두 종료하는 작업을 진행하기 위해서 객체 내부 종료 작업 필요 1.1. 예제 문제 코드 - 미리 connect()를 하고 싶어서 생성자 내부에 connect() 넣어봤다 - 시도를 한 것. 잘못된 시도 package hello.core.lifecycle; public class NetworkClient { private String url; // 생성자 내부에 connect() ..

framework/spring 2023.10.29

스프링 핵심 원리 이해 6 - 의존관계 자동 주입

1. 의존관계 주입 방법 - 4가지 크게 4가지 존재 생성자 주입 - 권장 수정자 주입(setter 주입) - 정말 필요시 -- 3, 4 번은 사용하지 말 것 -- 필드 주입 일반 메서드 주입 복습 spring container 설정 과정 모든 @Component 찾아서 등록 (의존관계 주입을 바로 수행하지 않는다.) 의존 관계 주입을 수행 (@Component가 다 등록 된 이후에 수행) 하지만 예외적으로 생성자 주입이나 수동 bean 설정 같은 경우에는 java code 특성상 1,2, 단계가 동시에 진행 1.1. 생성자 주입 생성자 호출시점에 딱 1번만 호출되는 것이 보장 불변, 필수 의존관계에 사용 불변 : (외부에서 생성자 값 변경 못하게) 필수(private final를 이용해서 생성자의 pa..

framework/spring 2023.10.29