묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring WebFlux + LLM 실전 구현
Spring AI 프레임워크를 사용하지 않은 이유
강의에서는 Spring AI와 같은 프레임워크를 쓰지 않고 Webflux 를 사용한 이유가 있을지 여쭙고 싶어요. Spring AI도 비동기 통신 방식을 지원하는 것으로 보았는데, 더 커스텀한 구현을 위해서 사용하신건지 강사님의 의견이 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
SpringBoot4 버전 Hibernate5JakartaModule 라이브러리 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 스크립트 Hibernate5JakartaModule 호출시 에러가 발생하여 확인 차 문의드립니다.ㄴ>om.fasterxml.jackson.datatype.hibernate5.jakarta.Hibernate5JakartaModule Unable to get public no-arg constructor 스프링부트 버전 문제인 것으로 판단하여 프로젝트의 스프링부트 버전확인시 4.1.0 버전으로 실행하였고 해당 버전에서 라이브러리와 클래스 변경이 있는 것 같아 질문 남깁니다. // Hibernate5jakarta // implementation 'com.fasterxml.jackson.datatype:jackson-datatype-hibernate5-jakarta' // -> 변경 // Hibernate7Module implementation 'tools.jackson.datatype:jackson-datatype-hibernate7'package jpabook.jpashop; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import tools.jackson.datatype.hibernate7.Hibernate7Module; @SpringBootApplication public class JpashopApplication { public static void main(String[] args) { SpringApplication.run(JpashopApplication.class, args); } // @Bean // Hibernate5JakartaModule hibernate5Module() { // Hibernate5JakartaModule hibernate5JakartaModule = new Hibernate5JakartaModule(); //// // 강제 지연 로딩 설정 // hibernate5JakartaModule.configure(Hibernate5JakartaModule.Feature.FORCE_LAZY_LOADING, true); // return new Hibernate5JakartaModule(); // } // ㄴ 변경 @Bean Hibernate7Module hibernate7Module() { Hibernate7Module hibernate7Module = new Hibernate7Module(); // 강제 지연 로딩 설정 // hibernate7Module.configure(Hibernate7Module.Feature.FORCE_LAZY_LOADING, true); return hibernate7Module; } }
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
강사님 질문 있어요.
Spring security 에서 주요 HTTP 보안 헤더 설정에 대한 내용은 어느 장에서 확인할 수 있나요?
-
미해결토비의 스프링 6 - 이해와 원리
RestTemplate과 webClient, RestClient에 대해서 질문드립니다.
토비님 안녕하세요!강의를 통해 템플릿-콜백 패턴을 배우니 그동안 무심코 지나쳤던 용어들이 어떻게 만들어졌는지 알 수 있는거 같아서 또 한번 배우고 있습니다.강의를 듣다 문득 궁금한 부분이 생겨서 질문드립니다.회사에서는 웹플럭스를 사용하고 있어서 webClient를 사용하고 있는데요.~템플릿이 아닌 ~클라이언트로 끝나는게 예전에는 그냥 용어가 달라졌구나 싶었는데,강의를 수강해보니 이것도 의미가 있을거 같아서 여쭤봅니다.비동기를 지원하는것 뿐만 아니라, webClient의 빌더패턴으로 사용자가 직접 조립하는 방식에서 주체가 달라졌기 때문에 이름 또한 변경된 부분일까요?좋은 강의 감사드립니다!
-
미해결스프링 핵심 원리 - 기본편
회원 도메인 인터페이스 개발
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 내용]회원 저장소를 갈아 끼울 수 있도록 설계할 때의 질문입니다.예를들어 메모리 회원 저장소에서 회원 정보를 조회하기 위한 파라미터 값, db 회원 저장소에서 조회하기 위한 파라미터 값.. 등등 파라미터 값이 다른 경우에는 인터페이스 설계를 어떤 식으로 해야할까요?실무에서는 외부 인터페이스 연동을 할 때나, db를 조회할 때나 파라미터 값이 그때그때 다 달랐던 것 같아서요. 그렇다면 저장소를 갈아 끼우더라도 각각 개발자가 넘겨줘야할 파라미터 값은 결국 변동될 수 밖에 없는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
setter 사용하지 않기
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용]setter 사용을 지양하라고 하셨는데요□ 필드 작성□ 연관관계 설정□ List 초기화(new ArrayList<>())□ @NoArgsConstructor(PROTECTED)□ private 생성자□ createXXX()□ 연관관계 편의 메서드□ 비즈니스 메서드(changeXXX(), cancel() 등)그러면 제가 정리한 이 순서처럼아래 코드와 같이 createMember 메소드를 위한 생성자를 만들고, changePassword같은 비즈니스 메서드를 추가하면 될까요? 2.그리고 createXX같은 메서드를 추가해줬을때@NoArgsConstructor(access = AccessLevel.PROTECTED) 를 추가해줘야하는게 맞는건가요?코드는 강의와 관련없는 제 개인 코드입니다.//생성자 private Member( String name, String email, String password, LocalDate birthDate, String phoneNumber, Address address ) { this.name = name; this.email = email; this.password = password; this.birthDate = birthDate; this.phoneNumber = phoneNumber; this.address = address; } public static Member createMember( String name, String email, String password, LocalDate birthDate, String phoneNumber, Address address ) { return new Member( name, email, password, birthDate, phoneNumber, address ); } //비밀번호 변경 public void changePassword(String password) { this.password = password; }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션을 제대로 이해한게 맞는지 궁금합니다
사용자가 로그인 성공시 HttpSession session = request.getSession();(세션이 없다면)세션 저장소에 UUID 값 : Session 객체 형태로 저장이 되고 session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);위 코드로 Session 객체에 "loginMember" : Member 객체(회원 정보)가 저장된다 최종적으로는서버쪽 Session 저장소에key: UUID 값valuye: session 객체{ "loginMember" : Member 객체(회원 정보)}형태로 저장이 된다 ======================로그인 이후 다시 검증할때(homeLoginV3)HttpSession session = request.getSession(false);쿠키에 저장된 JSESSIONID=UUID에서 UUID를 가져와서서버쪽 session 저장소에 저장된 UUID key를 찾고있다면 UUID에 맞는 session 객체를 반환 Member loginMember = (Member) session.getAttribute(SessionConst.LOGIN_MEMBER);그리고 반환 받은 session 객체에서 "loginMember" key로Member 객체(회원정보)를 가져온다 session 이라는 용어 때문에 헷갈리는데혹시 이게 맞을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jsp의 상대경로와 Controller에서 반환하는 이름이 달라도 괜찮나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]ControllerV4를 설명해주시는 과정에서 MemberSaveControllerV4의 반환값이 "save-result"으로 save.jsp의 상대경로인 save와 다른 것 같습니다. 코드 동작에는 문제가 없어보였는데 이런식으로 컨트롤러에서 반환하는 jsp 이름과 실제 jsp의 상대경로가 일부만 같다면 상관없나요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
안녕하세요 토비님 혹시 완성된 코드의 repository 주소는 없을까요?
안녕하세요 토비님 혹시 완성된 코드의 repository 주소는 없을까요?
-
미해결[Lv2] 현업 개발자의 JPA 완전 정복 - 영속성 컨텍스트부터 실무 패턴까지
자막 오타 제보
다형성인데 다양성이라고 표시되어 있습니다!이거 말고도 자막에 오타가 많은데, 제보하면 수정해 주시나요?
-
미해결6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
운영환경에 적용해볼 수 없을때...고민입니다 ㅠㅠ
안녕하세요 딩코님! 좋은 강의 잘 들었습니다.강의를 듣다가 조언을 구하고 싶은게 있어서 질문 남깁니다.저는 현재 주니어 개발자로 일으나 부하테스트 같은것을 회사에서 해볼 수 없는 상황이라(운영 인력이 아님...또한 작은 시스템이라 모니터링도 없고 구축할수도 없는 환경)강의에서 다뤄주신 내용을 실무에 적용해보기가 어려운데요... 그래서 제가 생각해본게 테스트 코드로 만들어서 돌려보면 어떨까 생각했거든요. 예를들어 아래와 같은 메소드를 만들어 놓고, 캐시 전/후를 비교하는 거죠...long start = System.currentTimeMillis(); service.findSomething(id); long elapsed = System.currentTimeMillis() - start; System.out.println(elapsed);그런데 한가지 고민되는 포인트가, 테스트 코드로 만들어서 돌렸을때 성능 개선을 수치적으로 적기가 좀 애매할것 같다고 생각이 들어서요. 아무래도 JVM이라던지, warmup이라던지 통제할 수 없는 변수가 있다보니까요.그래서 질문은 아래와 같습니다.특정 메소드에 로컬 캐시를 적용하기 전/후 테스트 코드에서 성능을 비교했을때, 1초->1ms로 성능 개선했다. <- 이런 문장이 임팩트가 있을까요? 아님 테스트 코드에서 한건 좀 신뢰성이 떨어질까요? ㅠㅠ테스트 코드에서 돌려봤을때 누가봐도 신뢰성있게 만들려면 어떻게(?), 무슨 툴(?)을 써서 하는게 좋을까요? ㅠㅠ저 같이 운영 환경에 적용해볼수 없는 개발자에게 조언을 주시면 또 감사하겠습니다!
-
미해결스프링 핵심 원리 - 기본편
빈 스코프 개념의 중요성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]빈 스코프 섹션은 아무리 다시 듣고, 강의 자료를 보아도 개념 자체가 잘 이해가 안됩니다. 스프링을 활용한 프로젝트에서 반드시 알아야 할 주제인가요? 이해가 부족하면 프로젝트 진행에 문제가 많이 될까요?
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
트랙잭션 격리수준 선택에 대해서 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 궁금증이 생겨서 질문을 드립니다.현재 듣고 있는 "트랜잭션 -개념 이해" 에서 격리수준에 대해서 설명할때 일반적으로 "READ COMMITTED"을 사용하고 이것에 대해서 설명한다고 했습니다."db - 기본 -11번 트랙잭션" 편에서 격리 수준을 설명 할때, 사진을 보면이렇게 격리 수준이 "REPEATABLE READ"로 바뀌어져 있는데요.그래서 궁금증은 지금 백엔드 개발을 한다면, "REPEATABLE READ" 이게 맞는 건가요? 아니면 "READ COMMITTED" 이게 맞는 건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요 치킨 디도스 이벤트 보고 흉내내보려 들어왔습니다..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 개발자의 꿈을 접고 살아가던 사람입니다.월드컵 시즌을 만나 영한님의 치킨 디도스 이벤트와무상태 프로토콜 강의 내용이 떠올라 뜬금없이 취미로주문 기능 구현 포트폴리오를 만들던 중일상에서 경험한 것들을 통해개인정보 유출에도 대응 가능하려면 어떻게 해야하는지..소비자가 트라우마를 경험하거나여러 고충에 대응할 수 있는 방법을 쥐어짜다보니영한님 강의를 쪽쪽 뽑아먹고 있는데요.. 부족하지만 직접 성의를 담아 만들어보겠습니다.약속한게 있어서요.. 항상 좋은 강의 감사합니다.
-
해결됨카카오 면접관이 알려주며 가장 쉽게 배우는 Kafka
실무 내용 문의드려요
CDC 쉘 스크립트 설명 하시면서 실무에서는 사용하지 않는 방법이라고 하셨는데 보통 실무에서는 이런 쉘스크립트 대신에 어떤 방식으로 진행을 하나요?
-
미해결스프링 핵심 원리 - 기본편
SingletonService가 JVM이 뜰 때 생성되는게 맞나요?
안녕하세요강의 내용에서 김영한님이"지연 로딩과 다르게 강의의 코드는 자바가 실행될 때 객체를 미리 만들어 생성해두는 가장 단순하고 안전한 방법이다. 인스턴스가 너무 메모리를 잡아먹는게 아니면 로딩할 때 만드는 이 방법이 제일 안전하고 간편하다. getInstance 할 때 없으면 만들고 있으면 그걸 쓰는 지연 로딩 방식은 다르다. "라고 하셨습니다. public class SingletonService { private static final SingletonService instance = new SingletonService(); public static SingletonService getInstance() { return instance; } private SingletonService() { System.out.println("SingletonService 생성자 호출됨"); } public void logic() { System.out.println("싱글톤 객체 로직 호출"); } }그래서 생성자 함수에도 출력이 되게 하고 자바 main함수에서 그냥 자바 실행시켜 봤는데, 생성자 호출이 안 되더라고요. getInstance를 부르면 생성자 호출이 출력되고요. 자바가 뜰 때(JVM이 실행될 때) SingletonService 클래스와 static변수인 instance는 메모리의 static영역에,instance에 할당되는 실제 SingletonService인스턴스는 힙 영역에 바로 다 생기는 게 맞나요? 강의에서 말씀하신 지연 로딩이랑 다르면 이렇게 되어야한다고 이해했습니다.그렇다면 왜 제가 만든 private 생성자 함수 속 출력문은 getInstance 코드 없이 자바가 실행될 때 나오지 않았나요?
-
미해결스프링 부트 - 핵심 원리와 활용
임포트 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]이클립스 사용 중인데 해당 프로젝트 import가 정상적으로 안 되는 것 같습니다. 패키지 생성이 안됩니다.
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
답을언제쯤받아볼수있나요
?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
형 책 어떻게 받아?
형 책 어떻게 받아?형 책 어떻게 받아?형 책 어떻게 받아?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@JsonIgnore 이후 Internal Server Error가 발생하지 않습니다.
[강의] 간단한 주문 조회 V1 : 엔티티를 직접 노출[시간]8분 25초[질문 내용]양방향 연관관계로 인한 무한 루프 문제까지는 발생하였고, @JsonIgnore로 해결하였습니다.그런데 강의 내에서 지연 로딩으로 인해 발생하는 "Internal Server Error"가 발생하지 않고 아래 사진과 같이 200 OK가 뜨면서 조회 결과가 나옵니다 ㅜㅜ강의와 같은 에러가 발생하지 않는 이유를 모르겠습니다...