묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 고급편
ThradLocal 실무 사례
실무에서 보통 ThreadLocal을 어떤 데이터를 저장에 주로 쓰는지 궁금합니다
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
after 메서드 사용 유무
[1줄 질문]after 메서드 로직을 테스트에 바로 적는 것도 보편적으로 사용하는 방법일까요?[설명] 테스트를 실행한 후, after 메서드로 memberA, memberB, ex 객체 값을 삭제하여 다음 테스트 실행할 때 데이터 충돌을 방지하는 것으로 이해했습니다.after 메서드를 실행할 때마다 테스트에서 생성 자체가 되지 않은 객체 또한 삭제되는 경우가 있는데, 이런 경우에는 after 메서드 대신 테스트 후(then 로직 종료 후) 바로 삭제하는 로직을 추가하는 것이 좀 더 빠르지 않을까 생각해보았습니다.물론 after 메서드를 사용하는 것은 중복 로직을 줄이기 위함도 있겠지만, 지금과 같은 경우에는 테스트 내에서 삭제 로직까지 추가하는 것은 보편적인 방법이 아닌지 궁금합니다.
-
해결됨코드로 배우는 스프링 웹 프로젝트 - Basic
<c:out>을 사용하는 이유에 대해서
<c:out>을 사용하면 HTML의 특수문자가 포함되있을 경우 HTML을 해석하지 않고 출력한다는데.HTML은 특수문자를 태그로서 가지고있는 마크업 언어인데... 이게 무슨말인지 이해를 잘 못하겠어요...인터넷의 다른 블로그 글을 봐도 거의다 똑같은 설명이라... 그냥 있는 그대로 출력을 한다는건지 HTML태그 안의 내용을 출력한다는건지 아리쏭 합니다..그리고 Spring에서 Beans으로 등록한다는 의미가 스프링에서 자체적으로 관리를 한다?고 이해하고 있는데...자바를 배우고 바로 spring으로 넘어와서 그런지 servlet의 개념도 어렵습니다...어디서 부터 손봐야할지 모르곘어요.... 죄송함니다..
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
FlatFileItemWriter의 FieldExtractor 커스텀 관련
킬구형 텍스트 강의임에도 몰입감 있는 구성에 연휴에 재밌게 공부하고 있어. 고마워FlatFileItemWriter에 대한 흐름을 정리하고 질문 해볼게1. sourceType() 메서드 내 객체 타입에 따라 FieldExtractor 구현체가 결정된다.2. (Bug가 fix되기 전까지) sourceType() 메서드 내 객체 타입이 Record일 경우 names() 메서드 호출은 무시되고, Record 타입의 모든 property가 쓰일 수밖에 없다.3. 그렇기에 Record 타입에서 필드 하나를 제외하고 파일을 쓰고싶다면, fieldExtractor()를 사용한 커스텀 구성을 통하여 필드 하나를 제외해야 한다.내가 강의를 보면서 정리한 흐름이고, 아래는 그 정리 중 나온 질문이야Q1. BeanWrapperFieldExtractor일 경우 필드 하나를 제외하고 싶다면, names()에서 해당 필드만 제외해도 되나? Q2. 만약 위와 같은 방법이 된다면, RecordFieldExtractor 관련 Bug가 fix 된 후에 FieldExtractor를 직접 커스텀하는 경우가 별로 없지 않을까 싶은데.. 혹시 내가 생각하지 못한 부분이 있을까?고마워 킬구형아
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
아키텍처 선택 시 고려사항 질문입니다
이번 강의에서 아키텍처 설명과 interface를 활용해 계층 간 의존도를 끊는 방법을 보며 시야가 넓어지는 느낌을 받았습니다.토비님은 새로운 프로젝트를 시작하거나 기존 코드를 리펙토링할 때, 어떤 기준으로 아키텍처를 선정하는지 궁금합니다.팀원들의 지식 범위나 프로젝트의 뱡향성, 개발 속도 등 여러 요소 중 어떤 부분을 더 중요하게 고려하시는지도 듣고 싶습니다.
-
미해결스프링 핵심 원리 - 기본편
Spring에서 SessionScope와 RequestScope는 함께 사용되나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Spring에서 SessionScope와 RequestScope는 실제로 어떤 관계로 동작하나요?예를 들어, 사용자가 로그인되어 세션이 유지되는 동안에도, 각 요청(Request)마다 RequestScope 빈이 새로 생성되는 구조인가요?아니면 JWT 기반 인증처럼 세션과 관계없이 매 요청마다 인증 로직이 수행되는 방식인가요?또 실제 실무에서는 로그인한 사용자의 상태를 SessionScope로 유지하면서 RequestScope 빈을 함께 사용하는 경우가 많은지도 궁금합니다.
-
미해결Java/Spring 주니어 개발자를 위한 오답노트
주니어 개발자가 더 나아가기 위한 조언을 부탁 드려도 될까요?
선배 개발자로서 알려주시는 강의 내용들이 정말 좋았는데요, 그와 더불어 앞으로 주니어 백엔드 개발자로서 어떤 역량을 조금 더 집중해서 키우면 좋을지 조언을 부탁드리고 싶습니다.또, 아직 이를 수도 있지만 이직을 준비할 때 도움이 될 만한 공부 방향이나 추천해주실 만한 책이 있다면 알려주시면 감사하겠습니다. 강의 중간중간 소개해주시는 책들이 많아서 최근에 또 추천해주실 책이 생기셨는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Spring Data JPA에 있는 인터페이스를 사용하는 경우가 많이 보이는데 강의에서는 EntityManager를 주입받아서 직접 구현하는 방식으로 설명해주신 이유가 궁금합니다.
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
실무적용 관련 질문드립니다
회사 규모상 프로젝트를 혼자서 개발하는 경우, 강의의 내용을 적용해서 도메인 문서를 만드는 것이 개발에 대한 정리나 추후 다른 사람이 봤을 때 도움이 될 수는 있으나, 당장 시간에 쫓기기도 하고 다른 사람의 피드백 없이 혼자서 정리하다 보면 잘 정리하기 힘들다는 생각이 되는데요. 이런 상황에서의 정리는 오히려 도움이 안될 수도 있다는 생각이 드는데, 토비님께서는 어떻게 생각하시는지 궁금합니다.
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
Kotlin과 Java의 현업에서의 활용
안녕하세요. Kotlin과 Java의 현업에서의 활용에 있어 궁금한 내용이 있어 질문드려요. 서버를 개발하실 때 Kotlin과 SpringBoot를 활용한다고 수업시간에 지나가면서 잠깐 말씀해주셨는데요. 혹시 Kotlin + SpringBoot의 프로젝트 작업을 진행하실 때 전혀 Java를 사용하지 않고 활용하시는지 아니면 Java와 Kotlin을 같이 사용하는 지 현업에서 실제 어떻게 활용하시는지 궁금합니다. 그리고 Gradle에서implementation("org.apache.commons:commons-lang3:3.0") 와 같은 외부 라이브러리를 Kotlin + SpringBoot 프로젝트에서 사용할 때 Java로 가져와서 사용하는지 아니면 Kotlin으로 따로 제작된 코드를 사용하는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
java static class와 kotlin class
[질문 내용]kotlin으로 실습을 진행하고 있는데, java의 static class에서 static은 무슨 의미인가요? kotlin에서의 그냥 class와 같은 역할인 걸까요?
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
실무 레거시코드에 낙관적 락, 비관적 락 적용 시도
안녕하세요 현재 섹션 5_4-9. 낙관적 락, 비관적 락 부분을 듣고 있는데요.현재 공공SI 고도화 개발팀에서 개발을 하고 있는데 동시성 제어 부분이 있는것 같아서 질문드립니다.레거시 코드로 Oracle/ iBatis DAO / XML 환경이며담당자가 신청에 대해서 접수하는 기능에서소스분석을 통해서 봤을 때 기존 소스 흐름은1. 작업확인용 테이블에서 현재 작업중인 목록이 있는지 확인(Select)2-1. 작업중 목록이 없다면 작업확인용 테이블에 작업중으로 insert2-2. 작업중 목록이 있다면 Exception 발생(작업중입니다.)3. 해당 신청건에 대한 insert/update 진행4. 작업확인용 테이블의 insert 했던 값의 상태를 작업완료로 Update* 작업중 상태가 있을 땐 다른 신청건에 대해서도 접수가 불가입니다.강의를 듣고 보았을 때 작업확인용 테이블의 존재 이유가 동시성 제어를 위함으로 보이는데기존 흐름을 봤을 때비관적락 > 배타락으로 적용하는것이 맞다고 생각이 드는데 맞는 접근일까요?또한 비관적 락 적용시 작업확인용 테이블의 존재가 필요없어지는 걸까요?해당부분을 건드리기에 부담이 가서 기존 방식대로 개발을 해놓은 상태이긴 한데강의를 듣고 적용해볼 수 있지 않을까 생각이 들어 질문드립니다!
-
해결됨멀티 모듈 아키텍처로 구현하는 은행 서버 핵심 기능 [ Kotlin & Spring ]
CQRS 설계 팁
대규모 트래픽 환경에서 Write Service의 부하를 줄이기 위한 CQRS 설계 팁이 있을까요?
-
미해결스프링 핵심 원리 - 고급편
실무에서의 동시성 문제
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 실무에서의 동시성 문제에 대해서 궁금한게 생겨서 질문 드립니다.현재 외부 API를 사용하는 서비스를 개발 중인데, WebClient, RestTemplate를 사용하여 개발 중에 있습니다.구글링 및 Claude MCP를 사용하여 검증 했을 때에는 해당 라이브러리를 사용할 때 동시성 문제를 일으킬 가능성이 없다고 하는데, 해당 라이브러리를 사용할 때 동시성 문제에 완전히 자유로운 건가요? 아니면 특정 상황에서는 동시성 문제가 발생할 수 있는 건가요?만약 발생할 수 있다면, 어떻게 테스트 코드를 작성해서 확인 할 수 있을까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
커버리지는 어떻게 활용하시는지 궁금합니다.
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요.좋은 강의 재밌게 수강하고 있습니다!강의를 들으면서 의식적으로 테스트 코드를 작성하기 위해 노력하고 있습니다. 학습하다 보니 테스트 코드에 대한 부분을 정량적인 지표로 활용할 수 있는 커버리지라는 지표가 있다는 것을 알게 되었는데요. 제가 개발하는 부분은 도메인이 복잡한 프로젝트는 아니다 보니, 주로 Service Layer와 Presentation Layer 위주로 작성하게 되더라구요. queryDSL이나 native query를 이용해 복잡한 쿼리를 작성하게 되면, 가끔 Persistence Layer까지 작성하게 되는 것 같습니다. 그러다 보니, 도메인 패키지가 아닌 Config 등 global 패키지에 존재하는 코드나 Persistence Layer의 테스트 코드가 커버리지가 낮고, Persistence Layer의 커버리지도 낮아서 그런지 보통 프로젝트의 라인 커버리지가 60% 전후를 기록하고 있는 것 같습니다. 우빈님께서는 커버리지를 어떤 식으로 활용하시는지 궁금합니다! 커버리지 자체를 신경쓰기 보다는 말씀해주신 대로 미래를 위해 의미가 있는 테스트 코드를 작성하고 싶은데, 커버리지도 활용하는 방법이 있는지? 그리고 주로 어떤 레이어 위주로 테스트 코드를 작성하시는지 궁금합니다!읽어주셔서 감사합니다.
-
미해결스프링 핵심 원리 - 고급편
로그 등 부가 기능에 대한 테스트코드
강의 자료에서 제공된 테스트 코드가 온전한 테스트 코드가 아니라고 언급하셨습니다. 실무에서 로그와 같은 부가기능에 대해서도 테스트 코드를 작성하시나요? 작성하신다면 로그가 정확하게 찍혔는지, 혹은 메서드 호출 순서나 시간이 기대한 대로 측정되었는지 등을 자동으로 검증하기 위해 일반적으로 사용되는 테스트 기법이나 프레임워크가 있을까요? 관련 방법이나 라이브러리 등에 대해 학습할 수 있는 키워드를 알려주시면 감사하겠습니다.
-
미해결토비의 스프링 6 - 이해와 원리
오브젝트 정의 중 배열에 대해서
오브젝트를 클래스의 인스턴스 혹은 배열이다라고 하면 기술적으로 맞는 정의라고 하셨는데 배열이 별도로 정의에서 언급된 이유가 궁금합니다!찾아보았을 때에는 new 클래스명() 과는 다른 별도의 new int[] 와같은 형식으로 생성JVM내에서 바이트코드 레벨에서의 조작을 통한 다른 조작 방식으로 접근으로 일반적인 클래스 생성을 통한 방식과는 다른 방식으로 배열을 객체로서 구현하고 접근하기 때문에 별도로 정의한다라고 이해하였지만 단순 자바에서의 구현 방식 차이로 자바에서만 별도 정의되어 표현된것인지 원래 오브젝트의 개념중 배열은 별도 기술하는것인지 궁금하며 혹시 위의 기술한것과 다른 이유가 존재하는지 궁금합니다!
-
미해결토비의 스프링 6 - 이해와 원리
스프링 레거시를 이용하는 회사에서 일을 하게 될것같은데
제가 개발 시작하는 신입사원인데 회사 앞으로 미래에 일하게 될 프로젝트 팀의 업무 내용을 어떤분께 들었는데 정부전자 프레임워크에서 스프링 레거시로 작업을 한다고 들었습니다.혹시 이 강의를 공부하는 것으로 충분히 대비가 될지, 완강 후에 추가로 어떤 공부를 더 해야하면 좋을지 모르겠습니다.
-
미해결스프링 핵심 원리 - 고급편
ProceedingJoinPoint와 MethodInvocation에 대하여
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용]1. 스프링에서 제공하는 MethodInterceptor에서 사용하는 MethodInvocation 객체와 @Aspect 프록시에서 사용되는 ProceedingJoinPoint는 어떤 차이점이 있나요?2. 비슷한 기능을 제공함에도 다른 객체가 사용되는 특별한 이유가 있나요?
-
미해결토비의 스프링 6 - 이해와 원리
JpaTransactionManager에 대해 궁금합니다.
@Transactional을 쓰지 않고 JpaTransactionManager 사용했을 때 좋은 점이 있을까요? @Transactional과 JpaTransactionManager의 차이가 궁금합니다.