inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

정렬

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

안녕하세요 코드보고 공부하다가 궁금한 점이 생겨서 질문 남깁니다. 문제에서 가수가 라이브한 곡 순서대로 부른곡의 길이가 분 단위로 나타난다고 하였습니다. 예시에서는 오름차순으로 잘 정렬되어있지만 가수가 라이브한 곡들의 길이가 뒤죽박죽되어있을때도 있을것을 고려해 배열을 정렬해준뒤 강사님의 풀이랑 똑같은 풀이를 적용하였는데 오답이라고 떴습니다. 정렬메소드가 들어가면 왜 오답이 뜨는지 궁금합니다 !

  • java
  • 코딩-테스트
해톨 댓글 1 좋아요 0 조회수 220

매뉴얼이 어디있나요?

미해결

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

매뉴얼이 어디있나요?

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

postman에서 message : ??? 나올 때

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 혹시 Postman으로 요청을 보냈을 때 ??? 값이 나온다면 Setting > File Encodings > Transparent native-to-ascii conversion 을 체크 해주시고 다시 Postman을 확인해보면 잘 나옵니다!

  • spring
  • mvc
Titans 댓글 1 좋아요 4 조회수 532

지역 클래스 지역 변수 캡쳐 질문

미해결

김영한의 실전 자바 - 중급 1편

안녕하세요. 자바의 설계상 동기화 등의 문제로 지역 클래스가 생성되 때 지역 변수의 값을 캡쳐하기 때문에 값을 변경하면 컴파일 에러가 난다는 설명에서 문의드릴 게 있습니다. 설명해주신 예제로 확인하면 순서가 1.process() 호출 -> 스택 프레임 생성 2. 해당 메서드 바디의 코드 실행 3. LocalPrinter() 객체 생성 인데, 여기서 3번 LocalPrinter() 객체가 생성이 될 때 지역 변수를 쓰는 게 있다면 그 지역 변수를 LocalPrinter() 객체 내부로 변수를 캡쳐해서 활용한다는 것이잖아요 ? 그러면 설명해주신 것과 같이 객체 생성 이후에 값을 변경하려고 하면 동기화 문제가 발생할 수 있어서 자바에서 그렇게 설계를 안했다는 건 이해를 하겠는데, 객체 생성 전에 값을 바꾸는 건 어떻게 이해를 해야 할까요 ? 생성 전에 값을 바꾸면 사실상 객체 생성 이후 캡쳐를 하더라도 바뀐 값으로 캡쳐를 하면 되니 동기화 문제가 전혀 없을 거 같아서요. 캡쳐본 중 위에는 객체 생성(캡쳐) 이후 바꾸면 안되는 예시이고 동기화 등을 고려하였을 때 제가 궁금한 건 캡쳐 전의 값 변경이 왜 캡쳐에 영향을 주느냐는 겁니다. (아래 캡쳐본) public Printer process(int param){ int localVar = 1; class LocalPrinter implements Printer{ int value = 0; @Override public void print(){ System.out.println("value = " + value); System.out.println("local value = " + localVar); System.out.println("param = " + param); System.out.println("outInstance = " + outInstance); } } LocalPrinter printer = new LocalPrinter(); localVar = 10; // printer.print(); return printer; } public Printer process(int param){ int localVar = 1; localVar = 10; class LocalPrinter implements Printer{ int value = 0; @Override public void print(){ System.out.println("value = " + value); System.out.println("local value = " + localVar); System.out.println("param = " + param); System.out.println("outInstance = " + outInstance); } } LocalPrinter printer = new LocalPrinter(); //localVar = 10; // printer.print(); return printer; }

  • java
  • 객체지향
인프린 댓글 2 좋아요 0 조회수 340

섹션 7 51강에서..

미해결

PZM기반 실무중심 백엔드 부트캠프(프리트레이닝)

interface를 class로 인식하는 것 같아요

  • java
  • spring
  • spring-boot
  • jpa
  • backend
박준호 댓글 1 좋아요 0 조회수 203

예외 처리에 대해 질문 있습니다.

해결됨

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

아래 내용은 제가 정리한 글입니다. - 예외 처리 흐름 🧸 Spring MVC 내부에서 예외 처리: 1. 예외 발생: 컨트롤러에서 예외가 발생한다. 2. 예외 전파: 예외가 DispatcherServlet으로 전파된다. 3. HandlerExceptionResolver: DispatcherServlet은 등록된 예외 처리기를 통해 예외를 처리하려고 시도한다. 4. Custom Exception Handlers: @ControllerAdvice에 정의된 예외 처리기가 있으면 이를 사용하여 예외를 처리한다. 5. BasicErrorController: 위의 처리기들에서 예외를 처리하지 못하면, /error 경로로 요청이 전달되어 BasicErrorController가 기본적인 에러 처리를 수행한다. 6. 클라이언트 응답: BasicErrorController가 예외를 처리하고 클라이언트에게 적절한 에러 응답을 반환한다. 🧸 WAS로 예외 전파: 1. 예외 처리 실패: DispatcherServlet이나 BasicErrorController가 예외를 처리하지 못한다. 2. WAS로 전파: 예외가 WAS(톰캣)로 전파된다. 3. 에러 설정에 따른 재요청: WAS는 Spring Boot가 설정한 에러 핸들링 설정에 따라 /error 경로로 재요청을 보낸다. 4. 에러 처리: /error 경로로 재요청된 에러를 BasicErrorController가 처리한다. 5. 클라이언트 응답: BasicErrorController가 예외를 처리하고 클라이언트에게 적절한 에러 응답을 반환한다. 위의 흐름에서 알 수 있듯이, 기본적인 에러 처리 방식은 컨트롤러에서 발생한 예외를 BasicErrorController를 통해 처리하는 것이다. 예외가 WAS까지 전파되는 경우는 예외적인 상황이며, 일반적으로는 Spring MVC 내부에서 예외가 처리된다. 간단하게 얘기해서 예외 또는 에러가 WAS까지 전파되는 상황은 드물고, 주로 Spring MVC(ControllerAdvice, RestControllerAdvice, ExceptionHandler, ResponseStatus, ResponseStatusException, BasicErrorController)가 처리하여 컨트롤러단에서 예외가 처리되는 것으로 이해를 하고 정리를 하였습니다. 그런데 검색을 하다보니 아래와 같은 내용들을 발견하였습니다. Spring은 BasicErrorController를 구현해두었다. ExceptionHandler나 ControllerAdvice처럼 직접 에러를 반환하는 경우에는 BasicErrorController를 거치지 않지만, @ResponseStatus, ResponseStatusException 등과 같이 직접 에러 응답을 반환하지 않는 경우에는 최종적으로 BasicErrorController를 거쳐 에러가 처리된다. 클라이언트 입장에서는 이를 모르지만 내부에서는 2번 컨트롤러로 요청이 전달되는 과정이 진행된다. 우리가 만든 예외 클래스에 다음과 같이 @ResponseStatus로 응답 상태를 지정해줄 수 있다. @ResponseStatus(value = HttpStatus.NOT_FOUND) public class NoSuchElementFoundException extends RuntimeException { ... } // 그러면 ResponseStatusExceptionResolver가 지정해준 상태로 에러 응답이 내려가도록 처리한다. { "timestamp": "2021-12-31T03:35:44.675+00:00", "status": 404, "error": "Not Found", "path": "/product/5000" } 하지만 에러 응답에서 볼 수 있듯이 이는 BasicErrorController에 의한 응답이다. 즉, @ResponseStatus를 처리하는 ResponseStatusExceptionResolver는 WAS까지 예외를 전달시키며, 복잡한 WAS의 에러 요청 전달이 진행되는 것이다. (WAS까지 예외가 전달되고, WAS의 에러 요청 전달이 진행됨) 그렇다면 제가 정리한 내용과 위 내용은 반대되는데, 어떤 것이 맞는건지 잘 모르겠습니다. 제가 정리한 내용이 맞다면, @Responsestatus는 ExceptioNResolver, 정확하게는 ResponseStatusExceptionResolver에 의해서 처리되므로 컨트롤러단에서 예외처리가 되어야 하는것이 맞다고 생각하는데, 어떤 것이 참인가요?

  • spring
  • mvc
liltjay 댓글 1 좋아요 0 조회수 210

내부 클래스 질문이 있습니다

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요! 좋은 강의 감사합니다. 공부하다가 궁금한 부분이 생겨서 질문 남깁니다. 지역 클래스는 지역 변수와 마찬가지로 코드(메서드) 안에 작성해야 하는데 만약 메서드(지역 클래스 밖에 있는) process의 반환 타입을 지역 클래스로는 사용할 수 없는 건가요? 혼자 코드를 작성 해봤는데 컴파일 오류가 떠서 왜 그런건지 이유가 궁금합니다. 내부 클래스는 반환 타입으로 사용이 가능한데 지역 클래스는 안되는 이유가 궁금합니다. 감사합니다

  • java
  • 객체지향
흠냐냥 댓글 1 좋아요 0 조회수 176

객체지향 관련하여 질문드립니다.

미해결

김영한의 실전 자바 - 기본편

안녕하세요. 저는 주니어 개발자 입니다. 취업을 위해 스프링 공부에만 급급하여 이해하지도 못한 채 넘어갔던 자바 기초 지식을 이제서야 강사님 강의를 통해 이해가 되는 것 같아 정말 감사드립니다. 현재 제가 있는 실무에서는 객체지향을 잘 사용하고 있지 않은 것 같고 부족하다고 생각되어 이번 강의를 계기로 객체지향 관련해서 더 공부하고 싶다는 생각이 들었습니다. 앞으로 강사님 로드맵 자바 (기초 > 중급 > 고급) -> 스프링 .. 이런식으로 차근차근 들을 예정인데 이 로드맵을 따라가면 더욱 객체지향을 이해할 수 있는지 아니면 따로 추가적으로 공부를 해야할지 궁금하여 질문드립니다. 감사합니다.

  • java
  • 객체지향
레오나 댓글 1 좋아요 1 조회수 397

임베디드모드는 H2에서만 가능할까요?

해결됨

스프링 DB 2편 - 데이터 접근 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 오라클에서 하려고 하니까 안 되는 것 같습니다 ㅠㅠ 임베디드 DB 사용 방법이 테스트 클래스에 @Transactional 넣기 test/resources/schema.sql 파일 작성 test/resouces/ application.properties 파일 작성 맞지않나요?!

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
김철준 댓글 2 좋아요 0 조회수 372

내부 인스턴스 질문

미해결

김영한의 실전 자바 - 중급 1편

안녕하십니까. 내부 인스턴스 생성시에 바깥 인스턴스의 참조값을 보관한다고 하셨는데 확인해보고 싶으면 어떻게 해야 할까요 ? 참조값을 어떤 필드에 담고 있는지 참조값이 같은지 확인하고 싶습니다 .

  • java
  • 객체지향
인프린 댓글 1 좋아요 0 조회수 203

안녕하세요 react협업에 관련해 질문드립니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 타임리프로 서버사이드렌더링 하는법은 김영한님께 배워서 알지만 프론트엔드 (리액트) 와 협업하는 강의는 따로 없을까요? @responsebody로 해야하는 것 같은데.. 어떻게 협업해야하는지 모르겠습니다. 따로 찾아봐야 하는걸까요?

  • spring
  • mvc
축구하는야채볶음밥 댓글 2 좋아요 0 조회수 368

섹션6 스프링데이터 JPA에서 오류 질문

미해결

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

private final MemberRepository memberRepository; @Autowired public SpringConfig(MemberRepository memberRepository){ this.memberRepository = memberRepository; } 자동 주입을 할 수 없습니다. 'MemberRepository' 타입의 bean이 두 개 이상 있습니다. Beans: memoryMemberRepository ( MemoryMemberRepository.java ) springDataJpaMemberRepository ( SpringDataJpaMemberRepository.java ) 라는 오류가 발생합니다 어디를 고쳐야 하는 건가요

  • java
  • spring
  • mvc
  • spring-boot
배가고프다 댓글 1 좋아요 0 조회수 164

테스트시 @Transactional 붙이고, orphanRemoval = true

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 테스트시 @Transactional 을 붙이고 , 객체 A(1) - B(N)간 다대일 양방향 참조를 설정 (일쪽에 mappedby Casecade ALL, orphanRemoval = true) 한 상태에서 부모객체의 참조를 끊으면 자연스레, 자연스레 N쪽에서 데이터가 사라지는 코드를 구현했었는데, @Transactional 적용 테스트시에 변경감지나, orphanRemoval = true 같은 경우 트랜잭션이 롤백되어서 orphanRemoval = true 작동이 되지 않는 문제가 있습니다. 이럴경우 테스트는 어떻게 해야하나요?? 실제 구현은 잘동작하지만, 테스트시에 동작 X @Transactional로 인해 orphanRemoval = true가 작동 안해서 , 떼고 테스트 코드를 작성할경우 검증로직에서 N쪽에서 데이터가 잘 들어갔거나, 삭제되는걸 검증하는 경우에는, 이미 트랜잭션이 서비스로직에서 detached 된 에러로, no session 에러를 만나게 되었습니다. 이럴 경우 어떻게 테스트 하시는지 여쭙고 싶습니다. 1쪽만 테스트 해야하는지, 본 강의에서와 같이 @Commit으로 해결하나요??

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
두잇베스트 댓글 2 좋아요 0 조회수 242

lazy loading 쿼리 문제

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

2024-06-15T19:47:56.267+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id limit ? 2024-06-15T19:47:56.270+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:INTEGER) <- [1000] 2024-06-15T19:47:56.285+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2024-06-15T19:47:56.285+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [1] 2024-06-15T19:47:56.291+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2024-06-15T19:47:56.291+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [1] 2024-06-15T19:47:56.295+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2024-06-15T19:47:56.296+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [1] 2024-06-15T19:47:56.298+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2024-06-15T19:47:56.298+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [2] 2024-06-15T19:47:56.300+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2024-06-15T19:47:56.300+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [2] 2024-06-15T19:47:56.302+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2024-06-15T19:47:56.302+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [2] @GetMapping("api/v2/simple-orders") public List<SimpleOrderDto> ordersV2() { List<Order> orders = orderRepository.findAllByString(new OrderSearch()); List<SimpleOrderDto> result = orders.stream().map(order -> new SimpleOrderDto(order)) .collect(Collectors.toList()); return result; } @Getter public static class SimpleOrderDto { private Long orderId; private String name; private LocalDateTime orderDate; private OrderStatus orderStatus; private Address address; public SimpleOrderDto(Order order) { orderId = order.getId(); name = order.getMember().getName(); orderDate = order.getOrderDate(); orderStatus = order.getStatus(); address = order.getDelivery().getAddress(); } } 강의 자료와 같은 코드인 것 같은데 쿼리가 한 번씩 더 나가서 질문 드립니다. 처음에 order와 member를 join하는 쿼리 하나 실행 그 뒤로 member 조회 쿼리, delivery 조회 쿼리 하나씩 실행되는 건 이해가 됩니다. 그런데 그 뒤로 order 테이블에서 특정 delivery_id에 해당하는 걸 조회하는 쿼리가 하나씩 또 나갑니다. 이 부분이 왜 발생하는지 찾기가 힘들어서 질문을 남깁니다.

  • java
  • spring
  • spring-boot
  • jpa
정민교 댓글 1 좋아요 0 조회수 340

MSA

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 4분경 보여주는 화면에서 server to server로 API를 통신한다고 되어있는데, 이런경우에 MSA로 구성되었다고 할 수 있는건가요??

  • spring
  • mvc
아랑짱 댓글 1 좋아요 0 조회수 158

CQS 패턴 질문

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

CQS 패턴에 대해 질문이 있습니다. 커맨드(상태 변경)와 쿼리(조회)를 분리하는 패턴이라는 건 알겠습니다. 커맨드는 상태 변경에 대한 책임이 있고 조회에 대한 결과 반환의 책임이 있지 않다. 따라서 반환값을 반환하지 않는다. 쿼리는 조회에 대한 결과 반환의 책임이 있어서 조회 결과를 반환값으로 반환한다. 이 정도로 이해했습니다. 문제는 api인데, api도 커맨드 api, 쿼리 api 이런식으로 분리 하나요? /api/v2/members/{id} 경로의 updateMemberV2 라우트 핸들러는 상태를 변경하는 api니까 Member의 상태만 변경하고 response는 성공, 실패에 대한 HTTP 상태 응답값만 반환하나요? 조회에 대한 api는 조회 결과를 response dto로 내려주는 데에 이상하게 생각하지는 않습니다. 그런데 삭제, 등록, 업데이트 등의 커맨드 api..?는 보통 그냥 api 결과로 HTTP status code만 반환해주는 지가 궁금하네요. 지금도 삭제 api는 그냥 204 응답 코드로 반환해주도록 개발해왔었는데 이게 CQS 패턴인지 궁금하네요. 지금까지 별 생각없이 업데이트 api도 엔티티에 대한 업데이트를 수행하고 업데이트 된 Entity를 가지고 dto를 만들어서 http response를 내려주었는데 CQS 패턴을 생각하면 이런 api는 성공 실패만 반환하는게 맞는건가 싶어서요

  • java
  • spring
  • spring-boot
  • jpa
정민교 댓글 3 좋아요 0 조회수 412

풀이 방법을 못 찾아서 indexOf를 사용하지 안고 풀었는데 이 풀이가 맞는지 봐주실수 있을까요?

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. TestString6를 풀다가 찾다찾다 못찾아서 제 식대로 풀어버렸는데 논리적으로 하자가 없는 지가 궁금해서 풀이식을 올려봅니다. 물론 인덱스메소드를 쓰지 않았지만 이렇게 풀면 문제되는 부분이 있을까요? 아직도 배열에서 헤메고 있는 초보라 배열을 제대로 썼는지도 궁금합니다.

  • java
  • 객체지향
도토리 댓글 2 좋아요 0 조회수 355

제약 관련 질문

해결됨

김영한의 실전 자바 - 중급 2편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? [질문 내용] private static void run(TaskScheduler scheduler) { while (scheduler.getRemainingTasksSize() > 0) { scheduler.processNextTask(); } } 여기에서 while (scheduler.getRemainingTasksSize() > 0)로 이미 task의 여부를 판단할 수 있는 조건 처리가 있는데 public void processNextTask() { Task processTask = tasks.poll(); if (processTask != null) { processTask.execute(); } } 내부 실행 메서드에서도 한번 더 task가 있는지 null 체크를 했습니다. 제가 풀었을 때는 이미 제약이 걸렸다고 생각하여 null 체크까지는 해주지 않고 풀어서 질문 남깁니다. 이미 이전에 비슷한 제약이 걸려있는데, 내부 메서드에서도 한번 더 제약을 거는 이유가 궁금합니다. 아니면 다른 예외가 발생할 수 있는 케이스가 있는건가요?

  • java
  • 객체지향
  • 제약
kyk 댓글 2 좋아요 1 조회수 263

예외처리

해결됨

스프링 DB 1편 - 데이터 접근 핵심 원리

안녕하세요 예외처리에 대한 질문이생겨 글 적습니다 ! MemberServiceV3_2에서 bizLogic()을 호출해서 메서드에서 던져진 SQLException을 잡습니다 그런데 MemberServiceV3_1에서 트랜잭션 매니저로 처리하는 try catch문에서는 Exception으로 예외를 잡는데 Exception이 모든 예외의 조상이라서 모든 예외를 잡는건 알고있습니다 ! 그런데 헷갈리는 부분이 SQLException이 commit을 하면 사라지나요 ?아니면 이때 SQLException이 잡히나요 ? 잡히지만 이미 커밋을 해버려서 롤백할 데이터가 없기 때문에 SQLException을 IllegalStateException으로 바꿔주기만 하고 try catch문을 빠져나오는 걸까요 ??

  • spring
  • mvc
  • spring-jdbc
해톨 댓글 2 좋아요 0 조회수 181

한글깨짐 현상

미해결

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

username에 한글을 사용해서 보냈을 때, log나 println에서 깨짐현상이 일어나서 setCharacterEncoding에서 UTF-8로 설정해도 깨지길래 postman content-type에 charset=utf-8로 설정도 해봤는데 계속 깨진 상태입니다... 어디에서 발생한 문제인가요?

  • spring
  • mvc
박선용 댓글 1 좋아요 0 조회수 270

인기 태그

인프런 TOP Writers

주간 인기글