spring

📖/spring(김영한)

스프링 핵심 원리 - 기본편 3일차

섹션3 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 AppConfig 리팩터링 입문서부터 아래 코딩이 왜 가능한지 궁금했는데 디자인패턴이라고 한다. public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } private static MemoryMemberRepository memberRepository() { return new MemoryMemberRepository(); } public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } public DiscountPo..

📖/spring(김영한)

스프링 핵심 원리 - 기본편 2일차

섹션2 스프링 핵심 원리 이해1 - 예제 만들기 회원 도메인 개발, 회원 도메인 실행과 테스트, 주문과 할인 도메인 설계 실습 주문과 할인 도메인 개발 협력 관계를 정의할 때 역할과 구현을 분리해서 자유롭게 구현 객체를 조립할 수 있게 설계하는 것이 좋다. 덕분에 회원 저장소는 물론이고, 할인 정책도 유연하게 변경할 수 있다. 주문과 할인 도메인 실행과 테스트 실습 섹션3 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 새로운 할인 정책 개발 @DisplayName(""): 파라미터값으로 테스트할 메서드를 문장으로 요약할 수 있다. 새로운 할인 정책 적용과 문제점 새로운 할인 정책인 정률 할인 정책을 적용하려면 객체 생성을 새롭게 해야 한다. 이로 인해 발생하는 문제점이 있다. DIP: 주문 서비스 클..

📖/spring(김영한)

스프링 핵심 원리 - 기본편 1일차

섹션0 강의 소개 강의 소개 - 섹션1 객체 지향 설계와 스프링 이야기 - 자바 진영의 추운 겨울과 스프링의 탄생 - 스프링이란? 스프링 생태계 필수 스프링 프레임워크 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, 기타 웹 기술: 스프링 MVC, 스프링 WebFlux 데이터 접근 기술: 트랜잭션, JDBC, ORM 지원, XML 지원 기술 통합: 캐시, 이메일, 원격접근, 스케줄링 언어: 코틀린, 그루비 최근에는 스프링 부트를 통해서 스프링 프레임워크의 기술들을 편리하게 사용 스프링 부트 스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용 단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성 Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨 손 쉬운 빌드..

📖/spring(김영한)

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 5일차

섹션7 AOP AOP가 필요한 상황 모든 메서드의 호출 시간을 측정하고 싶다면? 아래처럼 시작 시간과 끝난 시간을 계산해야 한다 이는 메서드마다 정형화될 수 없기 때문에 일일이 처리하기 번거롭다 public Long join(Member member) { long start = System.currentTimeMillis(); try { // 중복 회원 이름 검증 validateDuplicateMember(member); memberRepository.save(member); return member.getId(); } finally { long finish = System.currentTimeMillis(); long timeMs = finish - start; System.out.println("jo..

💭/KDT

KDT 22주차 회고(230728~230802)

🎯 목표 💡 나는 최고의 프로그래머당! 🖋️ 수업 내용 ※ 요약 주의 📆 230728 🌸Spring 도서관리시스템 📆 230731 🌸Spring 도서관리시스템 📆 230801 Practical 자바 유틸리티 - 9장 젠킨스를 이용한 지속적 통합 구축 지속적 통합(Continuos Integration): 빈번하게 반복적으로 개발 주기(코드→컴파일→패키징→테스트→검사→배포→코드→...)를 진행하는 것. 지속적 통합은 소프트웨어에 대한 통합을 반복적으로, 그리고 수시로 수행하고 테스트하는 것을 강조한다. 젠킨스를 설치할 때 두가지 경우 중 하나를 선택할 수 있다. 하나는 젠킨스에 내장된 서블릿 엔진을 이용해서 실행하는 것이고 다른 하나는 개별 WAS에 배포해서 실행하는 것이다. 전자도 충분히 활용가능하지만 ..

📖/spring(김영한)

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 4일차

섹션5 회원 관리 예제 - 웹 MVC 개발 회원 웹 기능 - 홈 화면 추가 스프링 부트가 스프링 컨테이너 내에 루트 관련 컨트롤러가 없으면 static 폴더의 index.html 파일을 보여주는데 만약 관련 컨트롤러가 있으면 static 폴더의 파일은 무시된다 실습함 회원 웹 기능 - 등록 form태그에서 인풋 태그의 name을 지정하면 action의 url을 따라 이동하는데 name에 지정한 값(ex. name=name)과 같은 이름의 필드를 찾고 그 필드에 자동으로 값을 대입한다 @GetMapping와 @PostMapping에 같은 url을 지정할 수 있는데 form태그의 메서드가 post일 경우 submit하면서 @PostMapping이 지정된 메서드를 동작시킨다 회원 웹 기능 - 조회 @GetMa..

📖/spring(김영한)

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 3일차

섹션3 회원 관리 예제 - 백엔드 개발 회원 서비스 개발 서비스 클래스: 리포지토리와 도메인을 이용해 실제 비즈니스 로직을 작성하는 클래스 Optional ifPresent(람다식): 인자가 true면 표현식을 실행한다 private void validateDuplicateMember(Member member) { memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다"); }); } 회원 서비스 테스트 테스트에서 사용할 메서드의 이름을 한글로 지정해도 됨 테스트 코드를 작성할 때 given-when-then의 문법을 이용하면 이해가 쉬움 given: 이런 상황이..

💭/KDT

KDT 21주차 회고(230720~230726)

🎯 목표 💡 나는 최고의 프로그래머당! 🖋️ 수업 내용 ※ 요약 주의 📆 230720 🌸Spring JSTL(JSP Standard Tag Library): 개발자들이 자주 사용하는 패턴을 모아놓은 집합. 컨트롤러에서 보내준 데이터를 뷰에 표현하도록 도와줌 servlet-context.xml static folder 설정: css, images, upload, js 등 서버에서 앞서 처리될 필요가 없는 정적 리소스 파일을 처리하는 역할을 수행함. 웹 애플리케이션의 물리적 경로 이름을 설정하고 이 경로에 정적 리소스 파일들을 저장하면 소스 코드나 웹 브라우저의 주소창에서 해당 리소스의 경로를 사용하여 직접 접속할 수 있음. 정적 리소스란 클라이언트에서 요청이 들어왔을 대 요청 리소스가 이미 만들어져 있어 ..

📖/spring(김영한)

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 2일차

섹션1 프로젝트 환경설정 빌드하고 실행하기 터미널로 프로젝트 폴더로 이동해서 ./gradlew build 입력 ./gradlew build 이후 build 폴더 안에 libs 폴더가 생성되고 안에 jar파일이 생성됨을 확인할 수 있다. 나의 경우 hello-spring-0.0.1-SNAPSHOT.jar 파일이다 이 파일을 java -jar hello-spring-0.0.1-SNAPSHOT.jar 명령어로 실행한다 java -jar hello-spring-0.0.1-SNAPSHOT.jar 서버에서 배포할 경우 위 jar파일만 export 시키고 해당 파일만 위 명령어로 사용하면 된다 섹션2 스프링 웹 개발 기초 정적 컨텐츠 정적 컨텐츠: 서버의 요구 없이 파일을 그대로 웹브라우저로 보내는 것 스프링 부트는..

📖/spring(김영한)

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 1일차

섹션0 강의 소개 강의 소개 ❗️순서❗️ 스프링 프로젝트 생성 스프링 부트로 웹 서버 실행 회원 도메인 개발 웹 MVC개발 DB연동 - JDBC, JPA, 스프링 데이터 JPA 테스트 케이스 작성 ⭐️ 학습 방법 ⭐️: 처음부터 끝까지 직접 코딩 섹션1 프로젝트 환경설정 프로젝트 생성 스프링 프로젝트를 만들 때 start.spring.io에서 만드는 것을 권장함 start.spring.io 설명 Project → Gradle-Groovy Language → Java Spring Boot → 괄호 없는 버전 중 택1 Project Metadata Group → 기업명 등 작성 Artifact → 빌드 후 결과물 Name → 프로젝트명 Description → 필요 x Dependencies Spring W..

모팔구
'spring' 태그의 글 목록 (2 Page)