inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

게시글 작성자인지 검증하는 과정은 Validation으로 검증해줘야 하나요?

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

게시글 작성자인지 검증하는 과정은 비즈니스 로직에 속하는지, 아니면 입력값 유효성 검사에 속하는지 궁금합니다. 레이어별로 어떤 검증 책임을 분산하는 게 맞는지 정리하다 보니 애매해서 질문글 올려봅니다.

  • spring
  • mvc
김민규 댓글 1 좋아요 0 조회수 74

"MemberFinderTest, MemberRegisterTest" record관련

미해결

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

record + 클래스 레벨 @Transactional에서 에러가 발생합니다.! 질문은 record 예약어는 final 클래스라서 상속이나 프록시 생성이 불가능한거 같은데 @Transactional 어노테이션은 Spring AOP기반이라 프록시 객체 생성이 안되서 에러가 발생하는거 같은데... 강의에서는 통과가 되더라구요 제가 어떤 부분이 놓쳤을까요?

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
kimoon Hong 댓글 2 좋아요 0 조회수 131

allowStartIfComplete 질문

해결됨

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

킬구형 안녕, 강의를 보다가 궁금한 점이 생겨서 문의를 남겨. "정리하자면, allowStartIfComplete 은 식별 파라미터 없이 Job을 재시작한 경우에만 적용되는 옵션이다." 이 문장을 보고 궁금증이 생겼는데, identifying JobParameters 가 없어서 Job 그리고 그 하위 Step 들이 다시 수행될수도 있겠지만, Job => Step A (성공) / Step B (실패) 여서 잡을 재시작하는 케이스에서, Step A 가 allowStartIfComplete true 면 A부터 스텝을 수행할텐데, 이 케이스에서도 allowStartIfComplete 를 쓰는게 아닌가 싶어서 문의를 남겨! 이러면 Spring Batch 6 에서도 의미있는 파라미터가 아닌가 싶어서! (강의 잘보고 있습니다, 감사합니다!!)

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
환경 댓글 1 좋아요 1 조회수 149

롬복과 사용자 정의 setter 메서드

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

강의 23:03분에서 setMember(Member member) 라는 setter 메서드를 작성하는데요. 제가 기억하기로는 @Setter를 설정하면 자동으로 필드 이름을 딴 setXXX() 인 setter가 만들어지는 것으로 알고 있습니다. 그러니까 현재 Member 필드가 있으니까 롬복인 @Setter 에 의해 setMember(Member member) 가 자동으로 생성되지 않을까 생각하는데요. 제가 생각한게 맞다면 이때 강의에서 만든 setMember(Member member)와 충돌? 이런 문제는 없나요? 시그니처까지 똑같은 것 아닌가요? 아니면 이런경우 사용자가 직접 만든 것이 더 우선시 되는건가요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
yoon6669 댓글 1 좋아요 0 조회수 99

2장.작전1. 실행시 오류에 대해서 문의.

미해결

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

,로분리된 csv파일로 하고 public FlatFileItemReader<SystemFailure> systemFailureItemReader( @Value("#{jobParameters['inputFile']}") String inputFile) { return new FlatFileItemReaderBuilder<SystemFailure>() .name("systemFailureItemReader") .resource(new FileSystemResource(inputFile)) .delimited() .delimiter(",") .names("errorId", "errorDateTime", "severity", "processId", "errorMessage") .targetType(SystemFailure.class) .linesToSkip(1) .strict(true) .build(); } ---------- 실행하면, 오류가 발생합니다. PS D:\Test\springboot\kill-batch-system> ./gradlew bootRun --args='-- spring.batch.job.name =systemFailureJob inputFile=d:/Test/springboot/kill-batch-system/system-failures.csv' ..... Caused by: org.springframework.batch.item.file.transform.IncorrectTokenCountException: Incorrect number of tokens found in record: expected 5 actual 1 ..... PS D:\Test\springboot\kill-batch-system> 그런데, \t으로 구분하고, .delimiter("\t") 로 하면 정상작동합니다. 이유가 뭘까요? 윈도우 환경입니다. 그리고, 실행시 파일의 위치를 절대경로로 주어야 하나요? 상대경로일경우, 파일의 위치를 어디에 두어야 하나요?

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
빈빠 댓글 2 좋아요 1 조회수 129

인터페이스

해결됨

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

안녕하세요! 이번 강의 수강 중 서비스 인터페이스에 대해 궁금하여 글을 남기게 되었습니다. 흔히 스프링 프로젝트에서 보통 Service 인터페이스와 ServiceImpl 구현체로 나누어 개발하며 제가 참여하게 된 프로젝트 또한 이러한 구조였습니다. 이미 이전 개발자 분께서 Service 인터페이스와 ServiceImpl 구현체로 나눠놓은 상태였고, 제가 A 기능의 AServiceImpl 안에 특정 서비스 로직이 비대해짐에 따라 해당 코드가 명확하지 않다고 생각되어 메서드로 분리하게 되었습니다. A 엔티티의 상태, 계산 등의 로직으로 private 메서드를 두었습니다. 여기서 동료와 의견이 갈렸습니다: 동료 입장: 1. ServiceImpl 안의 모든 메서드는 반드시 인터페이스에 있어야 한다. 2. 인터페이스는 외부·내부 구분이 아니라, 구현체가 제공하는 기능을 보장하는 것이므로 전부 담아야 한다. 3. 내부 메서드를 둘 거라면 굳이 인터페이스로 추상화할 필요가 없고 그냥 클래스로 쓰면 된다. 제 입장: 1. 인터페이스에는 “외부 계약(=공개 API)”만 있어야 한다. 2. 구현체 내부에서만 쓰이는 로직은 private으로 감추는 게 맞고, 외부에서 호출할 필요가 전혀 없다. 3. 인터페이스를 구현체 내부 헬퍼까지 다 포함하면, 오히려 계약이 불필요하게 비대해지고 역할이 모호해진다. 핵심 쟁점 저는 public 메서드는 모두 인터페이스에 있어야 한다는 데에는 동의합니다. 또한, 단순 public, private 만 있다면, 인터페이스의 역할이 모호하다는 것또한 이해하지만, 이전 코드와의 일관성과 운영 중인 시스템에 대한 변경이 필요할정도의 중대사항이라고 생각하지 않습니다. 궁금한 점은 private/내부 헬퍼 메서드까지 인터페이스에 강제로 올리는 게 맞는지, 인터페이스를 사용하는 의의가 궁금합니다. 긴글 읽어주셔서 감사합니다.

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
alcuz 댓글 2 좋아요 0 조회수 101

fail을 똑같이 쳤는데 오류가 발생해요

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] fail을 썻는데 전 빨간 밑줄이 떠요 gpt한테 무르니까 import 써야 한다는데 import쓰고 실행 돌리니까 또 틀렸다고 하고..

  • java
  • spring
  • mvc
  • spring-boot
all.kite091106 댓글 2 좋아요 0 조회수 229

궁금한게 있습니다.

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

ManyToOne 이 N : 1이라는관계를 표현한다는건 이해가 가는데 그게 어떻게 User 객체와 user_id bigint 컬럼과 매핑이 되는지 잘 모르겠습니다. 대출기록이 여러개고 User 가 1개 라는 것과 저것이 무슨 연관인지 이해가 안갑니다ㅜ

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
eovnfjfpa 댓글 2 좋아요 0 조회수 100

챕터별 설명하신 내용의 실행가능한 소스가 있는지 궁금합니다.

미해결

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

중간중간 소스만으로 실행가능한 소스를 만들고, 이해하는게 어렵습니다. 큰 챕터별로 실행가능한 소스가 없는지 궁금합니다. 즐거운 하루보내세요.

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
빈빠 댓글 2 좋아요 1 조회수 101

index.html Welcome page

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. Index.html 설정 후 localhost:8080 하여도 welcome page가 뜨지 않습니다. 1:36 확인 부탁드립니다. 감사합니다.

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 184

FormLoginConfigure에서 생성하는 필터

미해결

스프링 시큐리티 OAuth2

FormLoginConfigure에서 생성하는 필터가 UsernamePasswordAuthenticationFilter라고 말씀해주셨는데(8:37) ㅎ initDefaultLoginFilter 메서드에서 생성되는 필터 클래스가 DefaultLoginPageGenerationgFilter인거같은데 맞을까요?

  • java
  • spring
  • spring-boot
  • oauth
infbackends 댓글 2 좋아요 0 조회수 116

DTO 관련

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요 BookCreateRequest 객체에 name 을받는 생성자를 만들었더니 아무것도 안받는 생성자도 만들어야 정상 작동하더라구요 근데 아예 생성자를 안만드니까 바로 정상 작동하던데 무슨 차이가 있는건가요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
eovnfjfpa 댓글 2 좋아요 0 조회수 101

현업에서 springboot를 3.5.5 를 사용해서 공부중인데...

미해결

스프링 시큐리티 OAuth2

httpSecurity 클래스의 메서드 authorizeHttpRequests, formLogin, apply 메서드들의 인자값이 다 바뀌었네요 혹시 3.xx 버전으로 작성된 코드가 있을까요?

  • java
  • spring
  • spring-boot
  • oauth
infbackends 댓글 2 좋아요 0 조회수 335

파일 오픈 시

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

파일을 오픈할 때 build.gradle 을 선택해야 하는 이유가 따로 있을까요?

  • spring
  • mvc
duddlsrhdqn 댓글 1 좋아요 0 조회수 103

프로젝트 gradle-groovy ?

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] gradle-groovy와 gradle - kotlin중에 뭘로 해야하나요?

  • java
  • spring
  • mvc
  • spring-boot
긴긴소풍 댓글 1 좋아요 0 조회수 468

배포 시 테스트 코드가 돌아갈때 사용하게 될 RDB 셋팅에 관하여..

해결됨

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

안녕하세요. 강의 정말 잘 들었습니다. 도움이 많이 되어서 수강평은 나중에 꼼꼼히 작성해볼 생각입니다~! ====================== 바쁘시면 이 부분만 읽으셔도 됩니다. ============= 배포 시 jenkins server에서 실제 서버에 배포할때 테스트가 돌아갈텐데 jenkins server에 compose를 통해 작동 하게 될 mysql에 DB schema insert 작업을 해서 동일하게 구조를 맞추고 테스트가 돌아가게 하는 게 좋은 생각일 까요? =========================================================== [세부 사항] 일단 테스트 코드가 local mysql에서 돌아가는 걸로 이해 했습니다. 배포 시 jenkins server에서 실제 서버에 배포할때 테스트가 돌아갈텐데 jenkins server에 compose를 통해 작동 하게 될 mysql에 DB schema insert 작업을 해서 동일하게 구조를 맞추고 테스트가 돌아가게 하는 게 좋은 생각일 까요? 현재 아직 jenkins 배포를 하고 있지는 않고 소스코드 개발중이라 머리속으로만 생각하는 상태입니다. 토비님 의견은 어떠신가요.....?

  • java
  • spring
  • spring-boot
  • jpa
  • 리팩터링
  • ddd
  • deployment
YongIl Park 댓글 2 좋아요 1 조회수 129

예외 테스트시에는 JUnit의 메서드를 사용한 이유

해결됨

스프링 핵심 원리 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 맥락] 영상: 06:35 ~ pdf: 4. 스프링 컨테이너와 스프링 빈.pdf - p.7 제일 윗부분 - void findBeanByNameX() [질문 내용] 안녕하세요, 영한님. 이전에 isEqualTo() 와 isInstanceOf() 에서는 AssertJ 메서드를 사용하셨는데요. 예외 테스트시에는 JUnit5의 메서드를 사용하시더라고요. AssertJ에도 assertThatThrownBy() 등의 예외 검증 메서드가 있는데, 왜 예외 테스트시에만 JUnit5를 사용하셨는지 궁금합니다! (둘 중 하나만 사용한다면 취향차이라고 할 수도 있겠으나, 둘을 병행해서 사용하는 경우 assert를 위한 라이브러리가 두 종류로 나뉘게 되어 혼란스러울 수도 있지 않을까? 하는 생각이 들어서요. 그럼에도 불구하고 '예외 검증시에는 JUnit5의 메서드가 좋다'는 이유 등으로 선택된 것인지 궁금합니다.) 대부분의 검증의 경우에는 AssertJ의 메서드가 더 직관적이지만, 예외 검증의 경우에는 JUnit5가 더 직관적이기 때문일까요? 아니면 성능적으로 더 우수한 측면이 있나요?

  • spring
  • 객체지향
dev.rudevico 댓글 1 좋아요 0 조회수 102

테스트코드 메서드명 한글

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 영한님 안녕하세요. 테스트 코드 작성하실때 메서드명을 한글로 기재하시던데 실제 실무에서 테스트 코드 작성하실때도 한글로 작성하셨었나요?

  • java
  • spring
  • mvc
  • spring-boot
backendman 댓글 2 좋아요 0 조회수 261

궁금한게 있습니다!

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

이렇게 3단분리를 할때 처음부터 코드를 작성할때 이렇게 3가지 역할을 분리해서 각각 구현해야지! 라고 다 미리 설정해두고 코드를 짜는건가요 아니면 controller 에 일단 다 구현해놓고 그다음 분리해서 구현하는건가요?? 전자면 미리 생각하게 많아 뭔가 복잡해보여서요 ㅜ

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
eovnfjfpa 댓글 2 좋아요 0 조회수 106

테스트 코드 beforeEach() 메서드만 public 접근 제어자를 선언한 이유

해결됨

스프링 핵심 원리 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요, 영한님. 아래에 상황 - 의문 - 추측 - 결론 순으로 질문드리겠습니다! 상황: 이번 시간에 AppConfig 를 사용하도록 수정한 OrderServiceTest 와 MemberServiceTest 코드에서 새롭게 다음 메서드를 만들었습니다. @BeforeEach public void beforeEach() { // ... } 의문1: 그런데 이전에 만들었던 다른 메서드들의 경우 package-private로 접근을 제어하고 있습니다. 그래서 왜 두 경우에 다른 접근 제어자가 사용되었는지 의문이 들었습니다. @Test void createOrder() { // ... } 추측1: 스택오버플로우 1 을 보니 과거에는 리플렉션 기술을 통해 테스트 메서드를 식별해야 했기 때문에 public 으로 열어두는 것이 필요했다. 또한 이에 대한 JUnit5 탑 컨트리뷰터 Sam Brannen의 답변 에서는 "less is more라는 원칙에 따라 더이상 public 이 필요하지 않기 때문에 JUnit5부터는 작성하지 않아도 된다."고 하더군요. JUnit5 공식 문서 에서도 " public 접근 제어자로 선언될 필요는 없다. 다만, private 이면 안 된다. " 는 안내를 확인했습니다(아래 사진 참고). 결과적으로, 위 내용들을 근거로 "과거 관례로 인해 영한님이 public 을 사용하셨겠구나." 라는 추측을 했습니다. 결론: 결국 'JUnit5 이후부터는 테스트 메서드에 대해 public을 붙이지 않는 것을 권장한다(붙여도 문제는 없다).'는 것인데, (물론 개발팀 컨벤션에 따라 다르겠지만) 현업에서는 다음 두 경우 중 어떤 방식이 채택되는 경우가 더 빈번한지 여쭤봅니다! 과거 관례에 이어 public 을 여전히 작성한다. 이제 public 을 안 붙여도 되고, 이 방식을 JUnit5에서도 권장하기 때문에 더 이상 붙이지 않는다. 감사합니다.

  • spring
  • 객체지향
dev.rudevico 댓글 2 좋아요 0 조회수 97

인기 태그

인프런 TOP Writers

주간 인기글