inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

update가 반환하는 Member의 엔티티 여부

해결됨

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

JPA 기본편 강의 내용을 까먹어서 질문드립니다. MemberService의 update()에서 반환 타입을 void가 아닌 Member로 한 경우, controller에서 해당 Member를 반환받았을 때 이 Member는 영속성 컨텍스트가 관리하는 엔티티가 아닌건가요? 아니면 service와는 다른 영속성 컨텍스트에서 관리되는 엔티티인건가요?

  • java
  • spring
  • spring-boot
  • jpa
도토리 댓글 2 좋아요 0 조회수 174

스타일 및 개요 다루기

미해결

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

안녕하세요 맨날 보고서 취합하고 계획서 작성하는 일을하고있습니다. 처음에 양식을 공공기관에서 받으면 스타일도 수십게 개요도업는데 장수는 수백장 그래서 힘들어 하고 있습니다. 예산같은거는 엑셀로 양식만들어서 복사하는데. 맨날 그거 서식정리하는데 한나잘이라 배우러왔습니다. 엑셀 한글 옮기는거는 수업들으면 될거같은데 스타일 및 개요지정 같은것도 가능할까요? 질문사항 공공기관에서 뿌린 보고서 양식에서 1. 가. 이런거를 검색해서 거기의 서식을 스타일로 만들기 그리고 그 스타일을 개요지정후 키워드 검색 문장 스타일적용 한글문서에서 폰트 전부 유지하고 스타일 전부 지우기 엑셀참조 한글에 데이터집어넣기 그냥복사하면 공백도 같이들어가고 폰트 깨지고 난리라서요 ㅜ. 연결해서 붙이기 하면 양식을 마음대로 안되더라고요

  • python
  • 한컴오피스
Hyunuk Seo 댓글 3 좋아요 1 조회수 316

검증 오류 시 api 전송

미해결

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

MemberApiController의 saveMemberV2()에서 @Valid에 의해 검증 오류가 발생한 경우에도 오류에 대한 api를 내려줘야 하잖아요. 이때에도 오류가 없는 경우와 마찬가지로 CreateMemberResponse를 반환해야 하는 건가요? 검증 오류가 발생했을 때 api를 어떻게 전달해야하는지를 잘 모르겠습니다.

  • java
  • spring
  • spring-boot
  • jpa
도토리 댓글 2 좋아요 0 조회수 184

rest api json 객체 한글 깨짐 현상

해결됨

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

안녕하세요~ 선생님 강의 정말 재미있게 듣고 있습니다. 49강 강의를 듣는 중에 restful api json 객체 한글 깨짐 현상이 있습니다. 혹시 chrome 문제였나 싶어 postman 으로도 띄워봤지만 여전합니다.ㅠㅠㅠ 구글 찾아가며 해결해보려고 했지만 잘 해결되지 않습니다. // http://localhost:8081/myweb/rest @RequestMapping("/rest" ) public List<String> rest(HttpServletResponse response){ response.setCharacterEncoding("UTF-8"); List<String> list=new ArrayList<>(); list.add("스프링 프레임워크"); list.add("잘 하면"); list.add("된다"); System.out.println("Returning list: " + list); return list; // rest.jsp <-- 뷰를 만들면 된다.(X) : JSON -> [{ key:value, , ,}.{ },{ }] } System.out.println("Returning list: " + list); 이 부분 콘솔에 찍힌 값도 Returning list: [�뒪�봽留� �봽�젅�엫�썙�겕, �옒 �븯硫�, �맂�떎] 이렇게 나옵니다. 수정: // http://localhost:8081/myweb/rest @RequestMapping("/rest" ) public List<String> rest(){ List<String> list=new ArrayList<>(); list.add("스프링 프레임워크"); list.add("잘 하면"); list.add("된다"); System.out.println("Returning list: " + list); System.out.println("안녕"); return list; // rest.jsp <-- 뷰를 만들면 된다.(X) : JSON -> [{ key:value, , ,}.{ },{ }] } System.out.println("안녕"); 이 부분도 깨져서 나와용. ㅠㅠㅠㅠㅠ 감사합니다~ package com.example.controller; import com.example.entity.Book; import com.example.repository.BookMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; @RestController public class SpringRestController { // http://localhost:8081/myweb/rest @RequestMapping("/rest") public List<String> rest(){ List<String> list=new ArrayList<>(); list.add("스프링 프레임워크"); list.add("잘 하면"); list.add("된다"); return list; // rest.jsp <-- 뷰를 만들면 된다.(X) : JSON -> [{ key:value, , ,}.{ },{ }] } }

  • java
  • spring
  • spring-boot
  • jpa
  • backend
댓글 1 좋아요 0 조회수 918

api 개발 시 회원가입 폼 요청

해결됨

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

타임리프를 사용했을 때는 회원가입 시에 @GetMapping을 사용하고 뷰 템플릿을 반환하도록 했는데요. api로 개발 시에는 회원가입 폼을 요청하는 url을 따로 만들지 않아도 되는 건가요? 이 경우에는 어떻게 처리되나요..?

  • java
  • spring
  • spring-boot
  • jpa
도토리 댓글 2 좋아요 0 조회수 124

PlatformTransactionManager가 주입되는 이유

미해결

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

제가 알기로는 스프링에서 의존성 주입을 위해서는 @Component등의 어노테이션이 달려 있어 빈으로 등록되어야 컴포넌트 스캔에 의해서 자동으로 주입된다고 알고있는데요 PlatformTransactionManager는 클래스를 확인해보아도 그러한 어노테이션이 없는데도 자동 주입되는 이유가 뭔가요? gpt에 물어보니 스프링이 제공하는 트랜잭션 관리 기능의 핵심 인터페이스이므로 빈으로 등록하지 않아도 주입된다고 하는데 맞는말인가요?

  • spring
  • mvc
  • spring-jdbc
pbs0216 댓글 1 좋아요 0 조회수 248

커넥션을 가져오는 원리

미해결

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

DataSourceUtils.getConnection()가 트랜잭션 동기화 매니저가 관리하는 커넥션이 있으면 해당 커넥션을 가져오는것은 알겠는데요, 어떻게 알고 가져오나요? 예를들어 13분에 나오는 public class MemberServiceV3_1 { private final PlatformTransactionManager transactionManager; private final MemberRepositoryV3 memberRepository; public void accountTransfer(String fromId, String toId, int money) throws SQLException { //트랜잭션 시작 TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition()); try { //비즈니스 로직 bizLogic(fromId, toId, money); transactionManager.commit(status); //성공시 커밋 } catch (Exception e) { transactionManager.rollback(status); //실패시 롤백 throw new IllegalStateException(e); } } private void bizLogic(String fromId, String toId, int money) throws SQLException { Member fromMember = memberRepository.findById(fromId); Member toMember = memberRepository.findById(toId); memberRepository.update(fromId, fromMember.getMoney() - money); validation(toMember); memberRepository.update(toId, toMember.getMoney() + money); } private void validation(Member toMember) { if (toMember.getMemberId().equals("ex")) { throw new IllegalStateException("이체중 예외 발생"); } } } 이 코드에서 bizLogic 부분에는 트랜잭션 매니저와 같은 파라미터를 전달해주지 않는데, 아무리 DataSourceUtils.getConnection()를 쓴다 한들 어떤 트랜잭션 매니저가 시작한 커넥션인지 어떻게 아는거죠?

  • spring
  • mvc
  • spring-jdbc
pbs0216 댓글 1 좋아요 0 조회수 188

5:14 rollbackOnly에 대해서

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 강의 5:14분 내용에 대한 질문입니다. ‘rollbackOnly를 참고하지 않는다’는 말은, 가장 바깥쪽에 있는 트랜잭션 AOP 프록시 객체(MemberService의 트랜잭션 AOP 프록시 객체)가 런타임 에러를 만나면 어차피 트랜잭션 매니저에게 롤백 요청을 하기 때문에 rollbackOnly를 따로 참고하지 않아도 된다는 뜻인가요? 그렇다면, 만약 런타임 예외가 발생하지 않는 경우 rollbackOnly는 내부 트랜잭션 중 하나에서 임의로 롤백했을 때 바깥쪽에서 이를 감지하는 용도로 사용되는 건가요?

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
cksg 댓글 2 좋아요 0 조회수 148

코드 볼 수 있나요?

미해결

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

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

  • spring
  • mvc
uiw617 댓글 2 좋아요 0 조회수 191

MemoryMemberRepository 클래스에는 생성자가 없는데

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] MemoryMemberRepository 클래스에는 생성자가 없는데 어떻게 스프링 컨테이너에 등록이 되는거죠? 그리고 MemberRepository의 구현체가 몇가지 더 있는 경우 MemberService의 생성자 파라미터에는 어떤 구현체가 들어가나요?

  • java
  • spring
  • mvc
  • spring-boot
조태준 댓글 2 좋아요 0 조회수 166

WAS 서버 죽음

미해결

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

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

  • spring
  • mvc
백종원 댓글 1 좋아요 0 조회수 245

위 알고리즘은 어떨까요?

미해결

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

site = "http://naver.com" dot_index = site.index(".") slash_index = site.index("/") slash_index = site.index("/", slash_index + 1) + 1 password = site[slash_index:slash_index + 3] + str(len(site[slash_index:dot_index])) + str(site[slash_index:dot_index].count("e")) + "!" print (password)

  • python
김재준 댓글 1 좋아요 0 조회수 154

System.out.println("req = " + req);이 실행되지 않습니

미해결

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

HttpServletResponse 수강중 갑자기 JAVA_HOME 관련 오류가 발생하여(해결못함) 인텔리제이와 자바를 모두 재설치후 HelloServlet부터 다시 작성중입니다. 코드 작성후 localhost 8080:/hello에 접속해도 println문이 실행되지 않고 아래와 같은 [nio-8080-exec-1]이라는 문구 3줄이 나타납니다. [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 0 ms 문의글 작성중 추가적인 코드가 여러줄 추가되어 일부 올립니다 오후 6:09:56: Executing ':hello.servlet.ServletApplication.main()'... Invalid Java installation found at 'C:\Users\ido0709\.jdks\jbr-17.0.12' (IntelliJ) auto-detected. It will be re-checked in the next build. This might have performance impact if it keeps failing. Run the 'javaToolchains' task for more details. > Task :compileJava > Task :processResources UP-TO-DATE > Task :classes > Task :hello.servlet.ServletApplication.main() Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in method name [0x160x030x010x000xee0x010x000x000xea0x030x030xfdd0x99"}0xce0xe30x960xd8b0xec0x880x160x82J0xa1x0x9a0xde0xa70xb0^0x8au0xfc0xbd;0x7f0xf150xe40xed ]. HTTP method names must be tokens at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:407) ~[tomcat-embed-core-10.1.30.jar:10.1.30] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:257) ~[tomcat-embed-core-10.1.30.jar:10.1.30] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.30.jar:10.1.30] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) ~[tomcat-embed-core-10.1.30.jar:10.1.30] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.30.jar:10.1.30] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.30.jar:10.1.30] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.30.jar:10.1.30] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.30.jar:10.1.30] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.30.jar:10.1.30] at java.base/java.lang.Thread.run(Thread.java:842) ~[na:na]

  • spring
  • mvc
다라라람쥐 댓글 2 좋아요 0 조회수 154

클래스 객체에 대해서 궁금한 것이 있습니다.

미해결

나도코딩의 자바 기본편 - 풀코스 (20시간)

클래스 객체 사용 X 클래스 객체 사용 O 먼저 결론적으로 말씀드리면 제품의 정보를 일일이 정의한 것과 클래스 객체를 통해 코드를 작성한 것의 차이를 잘 모르겠습니다. 제가 챕터 7의 1번째 강의를 중에서 블랙박스의 정보는 이보다 실제로 많기 때문에 이 모든 것을 일일이 정의한다면 코드가 방대해 진다고 들었습니다. 그런데 제가 실습하고 나서 코드를 살펴보니 클래스 객체에 대한 필요성을 느끼지 못하였습니다. 알려주신다면 감사하겠습니다.

  • java
  • 객체지향
장동철 댓글 2 좋아요 0 조회수 172

notify() 호출 후의 상황에 대해 질문 있습니다.

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

@Override public synchronized void put(String data) { while (queue.size() == max) { log("[put] 큐가 가득 참, 생산자 대기"); try { wait(); // RUNNABLE -> WAITING, 락 반납 log("[put] 생산자 깨어남"); } catch (InterruptedException e) { throw new RuntimeException(e); } } queue.offer(data); log("[put] 생산자 데이터 저장, notify() 호출"); notify(); // 대기 스레드, WAIT -> BLOCKED } 생산자 스레드가 먼저 실행되면 마지막 스레드는 wait() 호출 후 스레드 대기 집합에서 관리 되는걸로 이해했습니다. 이 상태에서 소비자 스레드가 실행되면 데이터를 처리하고 마지막에 notify()를 호출하면 스레드 대기 집합에서 관리 되던 생산자 스레드가 깨어날텐대 여기서 wait(); 바로 다음 코드를 실행하지 않고 바로 BLOCKED 상태가 되는건가요? BLOCKED 상태에 있다가 소비자 스레드가 락을 반납 했을때 BLOCKED 상태가 풀리면서 wait() 바로 다음 코드를 실행한다고 이해하면 될까요?

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
감바스 댓글 2 좋아요 1 조회수 202

void method 선언 시, 자바 컴파일러가 return을 자동 추가 관련

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 영상 기준 4:46초쯤에 void 메서드는 return이 생략되어도 자바 컴파일러가 마지막줄에 넣어준다고 하셨는데 .class로 컴파일된 파일을 확인해보니 반대로 적어두었던 return도 생략이 되어있습니다. 자바 버전이 올라가면서 바뀐걸까요 아니면 컴파일된 파일이 아닌 파일을 실행 시에 return이 추가가 되는건가요?

  • java
조규상 댓글 2 좋아요 0 조회수 156

혹시 이 부분은 강의 찍을 때와는 다르게 현재 바뀐 걸까요?

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. // flush 자동 호출 commit, query int resultCnt = em.createQuery("update Member m set m.age = 20") .executeUpdate(); Member findMember = em.find(Member.class, member1.getId()); System.out.println("findMember.getAge() = " + findMember.getAge()); 이 부분을 보시면 영한님의 12분 코드와 같잖아요? 이때 Member findMember = em.find(Member.class, member1.getId()); 의 findember를 출력할 때, 영속성 컨텍스트 때문에 update문의 age가 20인 것이 반영이 안 돼야 하는데 제 환경에서는 반영이 되는 걸로 나옵니다..! 정리하면, em.clear() 를 하지 않았을 때는 age가 0이 나와야 하지만, em.clear() 를 하지 않았음에도 불구하고 age가 20이 나옵니다 물론 아래처럼 member의 age 초기값을 0으로 지정해줬습니다 Member member1 = new Member(); member1.setUsername("회원1"); member1.setAge(0); member1.changeTeam(teamA); em.persist(member1); 이유가 무엇일까요??

  • java
  • jpa
Sully 댓글 1 좋아요 0 조회수 228

인기 태그

인프런 TOP Writers

주간 인기글