스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!
₩137,500
초급 / Spring Boot, Spring Security, JPA, REST API, mybatis
5.0
(3)
캘린더(일정관리)를 만들면서 배우는 스프링 웹 프로그래밍! 짤 예제가 아닌 바로 써먹을 수 있는 예제로 스프링 완전 정복해요~
초급
Spring Boot, Spring Security, JPA
20년이상 Java 기반 웹 개발에 몸담아온 개발자 및 강사입니다. 대규모 프로젝트 설계부터 성능 최적화까지 폭넓은 실무 경험을 갖추고 있으며, 다수의 기업 교육과 대학 강의로 개발 지식 전달에도 힘써왔습니다. 실무와 교육의 균형 잡힌 시각으로 깊이 있는 통찰을 제공합니다.
스프링부트를 이용한 웹 프로그래밍: 웹사이트 이렇게 만드는 거예요!
₩137,500
초급 / Spring Boot, Spring Security, JPA, REST API, mybatis
5.0
(3)
캘린더(일정관리)를 만들면서 배우는 스프링 웹 프로그래밍! 짤 예제가 아닌 바로 써먹을 수 있는 예제로 스프링 완전 정복해요~
초급
Spring Boot, Spring Security, JPA
파이썬 프로그래밍
무료
입문 / Python
4.8
(111)
쉽게 프로그래밍에 입문할 수 있는 언어 Python
입문
Python
질문&답변
dto 타입
H K님 안녕하세요~^^DTO에서 String 타입을 사용한 데에는 특별한 이유가 있는 것은 아닙니다. 다만 학습자분들께 다양한 경험을 제공하고자 하는 의도가 있을 뿐입니다.ㅎㅎ참고로 학습이 아닌 실무 현장에서는 다양한 상황을 마주하게 되는데요, 어떤 프로젝트에서는 DTO 없이 Entity만 사용하는 경우도 있습니다.이는 절대 잘못된 방식이 아니라, 해당 프로젝트의 설계 방식이나 요구사항에 따른 선택일 뿐이라고 생각하시면 됩니다.지금처럼 다양한 관점에서 사고하고 계속해서 실전 감각을 키워가며 성장해나가시길 진심으로 응원할게요.홧팅~^^
질문&답변
메일 보내는 메서드에서
HK님 안녕하세요. 지방 출장 일정으로 인해 답변이 늦어진 점 양해 부탁드립니다. 기다리게 해드려 죄송합니다. 앞으로 더 빠르게 응대할 수 있도록 노력하겠습니다.네. 물론입니다. try ~ catch를 사용하면 다음과 같은 코드가 되겠네요.try { MemberEntity updateMember = memberRepository.save(findedMemberEntity); sendNewPasswordByMail(memberDto.getMail(), newPassword); return NEW_PASSWORD_CREATION_SUCCESS;} catch (Exception e) { e.printStackTrace(); return NEW_PASSWORD_CREATION_FAIL;}감사합니다.
질문&답변
인터셉터 질문
HK님 안녕하세요. 지방 출장 일정으로 인해 답변이 늦어진 점 양해 부탁드립니다. 기다리게 해드려 죄송합니다. 앞으로 더 빠르게 응대할 수 있도록 노력하겠습니다. 웹 애플리케이션에서 로그인 인증 여부에 따라 특정 서비스 접근 처리를 할 때 Filter와 Interceptor 모두 사용될 수 있습니다.둘은 동작 시점, 용도, 설계 목적 등에 있어 차이점이 있습니다. filter는 Servlet에 존재하면서 DispatcherServlet 앞에 위치해서 client의 모든 요청을 처리합니다.실행 흐름은 client의 요청 → Filter → DispatcherServlet 순이라고 이해하시면 됩니다.Interceptors는 Spring Framework에 존재하고 DispatcherServlet 뒤에 위치해서 컨트롤러 진입 전후에 실행됩니다.실행 흐름은 client의 요청 → DispatcherServlet → Interceptor → Controller 순이라고 이해하시면 됩니다.일반적으로 로그인 인증이나 권한 확인 등은 Spring MVC에서 처리되는 요청을 대상으로 하므로 Interceptor가 많이 사용됩니다.물론, Spring Security를 사용하면 더 정교하고 안전한 인증 및 권한 처리를 할 수 있습니다.결론적으로 로그인 인증이나 권한 확인이 목적이라면 Interceptor 보다는 Spring secutiry를 사용하면 됩니다.인증 외 요청 전/후에 특정 처리가 목적이라면 Interceptor를 사용할 수 있습니다.excludePathPatterns의 경우 학습자님들께 다양한 방법을 설명 드리고자 함입니다.excludePathPatterns는 특정 경로에 인터셉터를 적용하지 않도록 설정할 때 사용되며,상황에 따라 addPathPatterns와 함께 선택 또는 조합 해서 사용할 수 있습니다.오늘의 코딩 한 줄, 한 줄이 실력을 키우는 발판이 된다고 생각하고 계속 나아가는 마음이 중요하고 HK님의 질문에서 이러한 점이 느껴집니다.분명 멋진 개발자가 될 거예요. 파이팅입니다!감사합니다.
질문&답변
AOP에 대한 설명
앗! 저의 다소 부정확한 설명으로 인해 학습에 오해나 불편을 드린 것 같아 먼저 죄송하다는 말씀을 드립니다. 다시 정확하게 정리해드리겠습니다. Spring AOP(Aspect-Oriented Programming)는 스프링 프레임워크의 한 부분입니다.Spring AOP는 스프링 프레임워크의 일부로 제공되며, 별도의 독립적인 프로젝트 이름은 없고, 스프링 프레임워크의 하위 모듈인 spring-aop에 포함되어 있습니다.스프링 프레임워크는 여러 모듈로 구성되어 있으며, 그중 AOP 기능은 spring-aop 모듈을 통해 제공됩니다. 추가로, Spring Boot는 AOP 기능을 쉽게 사용할 수 있도록 spring-boot-starter-aop 스타터를 제공합니다. 이 스타터에는 AOP 관련 기능을 자동으로 포함하고 있기 때문에, spring-boot-starter-aop 의존성을 설정하면 AOP 기능을 사용할 수 있습니다. 즉, spring-boot-starter-aop에 spring-aop 모듈이 포함되어 있어 별도로 spring-aop 의존성을 추가할 필요가 없습니다.다음은 build.gradle에서 spring-boot-starter-aop 의존성을 추가하는 코드입니다.implementation 'org.springframework.boot:spring-boot-starter-aop' 다시 한 번 학습에 불편을 드린 점 진심으로 사과드리며, 관련 동영상은 조속히 업데이트하도록 하겠습니다.추가로 궁금한 점이 있으시면 언제든지 편하게 문의해 주세요. 감사합니다.
질문&답변
코드
peanutchan님 안녕하세요! 당연히, 각 수업(차시)마다 진행한 프로젝트가 정리되어 있습니다.프로젝트 소스는 강의자료를 다운로드하면 소스>pjt_intellij에 있습니다.예를 들어 33강 수업에 대한 프로젝트 소스는calendar_33강.zip이고,34강 수업에 대한 프로젝트 소스는 calendar_34강.zip입니다. 다만, '스프링 MVC를 이용한 스마트폰 연락처 서비스 구현 - I : 연락처 등록' 수업에 대한 프로젝트 소스는 'phonebook'으로 되어 있어 다소 불편함을 드린 듯합니다.불편함을 해결하고자 급하게 해당 수업에 진행한 프로젝트를 정리했습니다. 참고하시면 보다 편하게 학습하실 수 있을 거예요. 강의제목(강의번호)(프로젝트 소스 이름) [섹션02]DI 쉽게 이해하기 - I : 그동안 객체를 잘못 다루고 있었네요 (11강)(mycalculator)DI 쉽게 이해하기 - II : 아하! 객체는 이렇게 다루는 거구나!! (12강)(mycalculator)IoC 쉽게 이해하기 : 스프링이 대신 관리해준다고? (13강)(mycalculator)학습 내용을 정리하며 마무리하는 DI와 IoC 실습: 의존성 주입과 제어의 역전, Java 코드로 직접 경험하기 (14강)(mymessage) [섹션03]처음 만들어 보는 스프링 부트 프로젝트 (15강)(ch03_pjt_01)프로젝트 구조 이해하기-I : src 디렉터리의 이해 (16강)(ch03_pjt_01)프로젝트 구조 이해하기-II : 빌드의 이해 (17강)(ch03_pjt_01)서블릿과 스프링 MVC의 이해 - I : 서블릿 컨테이너와 IoC 컨테이너 (18강)(ch03_pjt_01)서블릿과 스프링 MVC의 이해 - II : HTTP 요청과 응답 (19강)(ch03_pjt_01)스프링 MVC를 이용한 회원가입 및 로그인 구현 - I : 양식 화면 (20강)(ch03_pjt_02)스프링 MVC를 이용한 회원가입 및 로그인 구현 - II : 결과 화면 (21강)(ch03_pjt_02)@RequestParam과 Model : 데이터 전달과 화면 렌더링 (22강)(ch03_pjt_02)스프링 MVC를 이용한 스마트폰 연락처 서비스 구현 - I : 연락처 등록 (23강)(phonebook)스프링 MVC를 이용한 스마트폰 연락처 서비스 구현 - II : 연락처 조회 (24강)(phonebook) [섹션04]애플리케이션 예제 준비 : 프로젝트 복사 (25강)(ch04_pjt_01)Service 빈 객체 구현 - I : 스프링 설정파일 (26강)(ch04_pjt_01)Service 빈 객체 구현 - II : @Configuration (27강)(ch04_pjt_01)Service 빈 객체 구현 - III : @Service (28강)(ch04_pjt_01)DAO 빈 객체 구현 (29강)(ch04_pjt_01)로그인 Service, DAO 구현 (30강)(ch04_pjt_01) [섹션05]홈(home.html) 화면 만들기 (33강)(calendar_33강.zip)사용자 회원가입 기능 구현 (34강)(calendar_34강.zip)데이터베이스 연동하기 - I : JdbcTemplate (36강)(calendar_36강.zip)데이터베이스 연동하기 - II : DAO에서 회원가입 처리하기 (37강)(calendar_37강.zip)데이터베이스 연동하기 - III : 비밀번호 암호화 (38강)(calendar_38강.zip)데이터베이스 연동하기 - IV : 회원가입 결과 화면 (39강)(calendar_39강.zip) [섹션06]사용자 로그인 기능 구현 (40강)(calendar_40강.zip)세션을 이용한 로그인 상태유지 (41강)(calendar_41강.zip) [섹션07]계정수정 기능 구현 (42강)(calendar_42강.zip)비밀번호 찾기 기능 구현 - I : 메일 발송 준비 (43강)(calendar_43강.zip)비밀번호 찾기 기능 구현 - II : 메일 발송 구현 (44강)(calendar_44강.zip)인터셉터(Interceptor) (45강)(calendar_45강.zip) [섹션08]다양한 의존성 주입(DI) 방법 (46강)(calendar_46강.zip)롬북(lombok) : 자동 코딩 (47강)(calendar_47강.zip)로거(logger) : Log4j2 - I : log4j2 설정과 사용 (48강)(calendar_48강.zip)로거(logger) : Log4j2 - II : 로그 파일 이용 (49강)(calendar_49강.zip)로거(logger) : Log4j2 - III : 로그 파일 분리 (50강)(calendar_50강.zip) [섹션09]MyBatis - I : 쿼리에만 집중하자! (51강)(calendar_51강.zip)MyBatis - II : 설정 파일과 매핑 기법 (52강)(calendar_52강.zip) [섹션10]멤버 서비스 CRUD에 JPA 적용하기 - I : Entity 만들기 (54강)(calendar_54강.zip)멤버 서비스 CRUD에 JPA 적용하기 - II : EntityManager 만들기 (55강)(calendar_55강.zip)리펙토링 (56강)(calendar_56강.zip) [섹션11]Spring Security 적용 - I (58강)(calendar_58강.zip)Spring Security 적용 - II (59강)(calendar_59강.zip)리펙토링 (60강)(calendar_60강.zip) [섹션12]관리자 프로젝트 생성 (61강)(calendaradmin_61강.zip)관리자 멤버 서비스 (62강)(calendaradmin_62강.zip)관리자 권한 변경 하기 - I : 관리자 목록 구현 (64강)(calendaradmin_64강.zip)관리자 권한 변경 하기 - II : 관리자 권한 변경 구현 (65강)(calendaradmin_65강.zip)사용자 권한 변경 하기 - I : 사용자 목록 구현 (66강)(calendaradmin_66강.zip)사용자 권한 변경 하기 - II : 사용자 권한 변경 구현 (67강)(calendaradmin_67강.zip) [섹션13]Spring Secutiry 인가(Authorization) 설정 (68강)(calendar_68강.zip)캘린더 기본 UI 만들기 (69강)(calendar_69강.zip) [섹션14]일정 등록 기능 구현 - I : 프론트 엔드 (70강)(calendar_70강.zip)일정 등록 기능 구현 - II : 백 엔드 (71강)(calendar_71강.zip)일정 조회 기능 구현 (72강)(calendar_72강.zip) [섹션15]일정 수정 기능 구현 (73강)(calendar_73강.zip)일정 삭제 기능 구현 (74강)(calendar_74강.zip) 추가로 궁금한 점이 있으시면 언제든지 편하게 문의해주세요.항상 응원하고 있겠습니다!
질문&답변
4_ 칼리리눅스 설치 관련 질문드립니다
지나가는 길에 몇 글자 적습니다. 자세한 정보를 확장하면 에러 코드가 혹시 '0x80070057' 일까요?0x80070057의 경우 정확한 원인을 알수는 없지만, 대부분의 경우 disk용량이 부족하면 발생한다고 하네요. 설치하는 곳의 용량을 최소 30G이상 확보한 후 다시 시도해 보세요. 아래 글도 참고하시면 약간은 도움이 될듯 합니다. https://www.partitionwizard.com/resizepartition/result-code-e-invalidarg-0x80070057.html