inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

application.yml에 default_batch_fetch_size 오류

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 관련내용의 질문들이 있으나, 제 케이스는 다른 것 같아서 질문 올립니다. 아래와 같이 작성하였으나, 적용이 되지 않습니다. jpa: hibernate: ddl-auto: create properties: hibernate: default_batch_fetch_size: 100 위치를 옮겨봤는데요, properties.default_batch_fetch_size 위치에서 적용이 되는 것으로 보입니다. 다만, 실제 실행해보면 적용되지 않습니다.

  • java
  • spring
  • spring-boot
  • jpa
이사라 댓글 2 좋아요 0 조회수 189

기본형과 참조형 문제와 풀이 마지막 문제

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 18,20줄에 nextInt()를 두 번 사용하면 버퍼에 \n\n줄바꿈 문자 2개가 남게되고, 이후에 21줄에서 nextLine()을 통해 입력 버퍼를 비운다고 했는데, nextLine()은 \n 하나만 처리하는거 아닌가요? 그렇게 되면 버퍼에 \n이 하나 남게되고, 순회(int i = 1)할 때, 다음 16줄의 nextLine()에서 \n을 처리하여 빈 문자열(" ")을 반환하지 않나요? 그런데 이 코드를 돌려보면 nextInt()를 두 번 호출하고, nextLine()을 호출하면 \n\n 줄바꿈 문자 2개를 연속으로 버퍼에서 처리되었는데 그 이유가 무엇인가요?

  • java
  • 객체지향
andrea bocelli 댓글 1 좋아요 0 조회수 192

ReentrantLock과 sleep()에 대해 질문 있습니다.

미해결

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

ReentrantLock 사용시 쓸 수 있는 락이 여러 개 있는지 아니면 하나만 쓸 수 있는지 궁금합니다. Object의 wait() 사용 시 스레드가 스레드 대기 공간에서 기다리는 것처럼 sleep() 같은 경우도 따로 대기하는 공간이 있는지 궁금합니다.

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

준영속 상태 질문

해결됨

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

준영속상태에 대한 설명에서 영속성 컨텍스트에서 이전에 존재했지만 지금은 detach된 엔티티가 아니라 영속성 컨텍스트에서 이전에 존재 + 적어도 한번은 flush()되어 DB에 엔티티가 존재하는 경우 아닌가요? 즉 이전에 컨텍스트에서 존재 + flush로 인한 DB에 반영되었던 엔티티

  • java
  • jpa
영한노게임 댓글 3 좋아요 0 조회수 206

질문 em.find(), JPQL 조회 및 이해 확인 질문

미해결

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

같은 조회이지만 JPQL은 무조건 플러시한다는 개념을 알게되었습니다 반면 find()는 그렇지 않은것으로 아는데 find()또한 1차 캐시에서 가져오지 못할 경우 플러시 후 가져와야하지 않나요? 이 두 방식은 결국 "플러시"라는 차이가 있어보이는데 이유에 대해 이해가 가지 않네요. 영속성 컨텍스트에서 관리되는 엔티티 객체에 대해 수정을 할 경우 커밋시도시 먼저 엔티티의 최종적 모습을 확인해서 Update쿼리문을 만든다고 생각(쓰기지연저장소에 저장)했습니다. 반면 persist() 곧바로 쿼리문이 쓰기지연 저장소에 insert문으로 저장된다고 인지중입니다. 그렇다면 persist()후에 해당 엔티티를 수정을 가한다면 최종적으로 커밋시에 insert + update 두 쿼리문이 수행되는 걸까요?

  • java
  • jpa
영한노게임 댓글 2 좋아요 0 조회수 182

일대일 관계

미해결

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

자기소개서와 관련된 서비스를 구축하던 중에 관계 매핑에 의문점이 생겨서 질문 드립니다. 회원 테이블, 카테고리 테이블, 제목 테이블이 존재하는데 회원은 자기소개서에 대한 카테고리와 제목을 각각 하나씩만 지정하여 자기소개서에 대한 첨삭을 받을 수 있습니다. 그런데, 서비스를 다시 사용하여 카테고리, 제목을 다른 것으로 지정하여 또 다른 자기소개서에 대한 첨삭을 받을 수 있습니다. 이렇게 되면 두개의 자기소개서가 생기고, 이 내용들을 마이페이지에서 확인할 수 있도록 설계를 하려고 합니다. 이런 구조라면, 회원-카테고리 / 회원 - 제목은 각각 1:1로 매핑이 되는 것이 맞는건지, 각각에 대한 history가 저장되어야 할 필요가 있을 것 같아 중간에 테이블이 필요하다는 생각이 들었습니다. 어떠한 연관관계 매핑이 필요한지 감이 잘 안옵니다 ㅠ

  • java
  • jpa
bruno3 댓글 1 좋아요 0 조회수 180

npx랑 yarn이랑 같이 써도 되나요?

해결됨

기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)

프로젝트 세팅할때는 yarn을 쓰셨는데요. shadcn에서 avatar 설치할때는 npx을 쓰셔서요. 같이 써도 문제가 없나요?

  • react
  • 인터랙티브-웹
  • 클론코딩
  • next.js
  • tailwind-css
  • zustand
박상원 댓글 2 좋아요 0 조회수 465

equals 설계가 이해가 어렵습니다

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] equals는 매개변수를 받으면 -> User2 클래스로 변환 (다운캐스팅) -> 만들어진 User2객체에서 id 추출 -> 그걸 User2 id와 비교 정리하면 들어온 Object를 User2로 바꾸어 id를 확인하는 메서드인데 User2를 User2로 다운캐스팅하여 User2와 비교 후 User1 과 비교하는 로직 아닌가요? 어느부분이 잘못된건지 모르겠습니다ㅜㅜ

  • java
  • 객체지향
댓글 2 좋아요 0 조회수 230

Lazy 강제 초기화 오류

미해결

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

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오) [질문 내용] Lazy 강제 초기화 시, order.getMember().getName() 는 @GetMapping("/api/v1/orders") public List<Order> listV1() { List<Order> orders = orderRepository.findAll(new OrderSearch()); for (Order order : orders) { order.getMember().getName(); ... } return orders; } 다음과 같은 결과를 기대합니다. { "id": 1, "member":{ "name": "memberA", }, ... } 하지만 order.getMember() 까지만 초기화 되어, 다음과 같은 결과가 나옵니다. { "id": 1, "member":{ "id": 1, "name": "memberA", "address":{ "city": "주소", "street": "거리", "zipcode": "우편번호" } }, ... } Intelij 에서도 'Member. getName()'의 결과가 무시되었습니다 라고 에러가 뜨는데 그 이유가 궁금합니다.

  • java
  • spring
  • spring-boot
  • jpa
김용기 댓글 2 좋아요 0 조회수 249

다형성을통한 중복 해결시도 - 잘못된 타입의 인수쪽 질문

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 강의를 듣다가 질문이 생겨서 질문을 남깁니다. 마지막에서 잘못된 타입의 인수를 전달할 때 해결 방법으로 instance-of가 생각나더라고요. 근데 이 방법이 있어도 안 한 이유가, IntegrBox랑 ObjectBox랑 대조 설명 하시면서, 코드의 재사용성, 코드의 안정성을 말씀하시던데, instance-of를 하게 되면(클래스를 만들든 메서드로 만들든) 타입마다 계속 비교해서 코드가 한없이 길어지기 때문에, 코드의 재사용X 이기 때문에 안 하신건가요? 추가1 아니면 다른 이유가 있는 것 인가요? 답변 부탁 드립니다.

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
생각하는자 댓글 2 좋아요 0 조회수 177

섹션2 1.2 페이지 이동 및 데이터페칭 관련 질문

해결됨

한 입 크기로 잘라먹는 Next.js

16분 그림을 기준으로 초기 접속 시(SSR방식) : JS번들링(html 렌더링)하고 hydration으로 상호작용이 가능한 페이지로 변환 페이지 이동 시(CSR방식) : 브라우저가 서버에게 별도의 페이지를 추가로 요청하지않고 js를 실행해서 컴포넌트를 교체 뒤에 나오는 섹션의 데이터페칭과 프리페칭에 관해 궁금합니다. SSR에서의 데이터 페칭은 서버가 접속요청을 받고 백엔드 서버로부터 API를 주고받고 JS를 실행해서 렌더링된 HTML을 브라우저에 렌더링하는 것으로 알고 있는데 페이지 이동시에는 CSR방식으로 처리된다고 하셔서 이럴때는 브라우저에 렌더링 후에 데이터페칭을 하는것인지 궁금합니다. 위의 질문과 유사한데 프리페칭이 현재 페이지에 걸려있는 링크들에 대해서 JS번들링을 미리 가져오는것으로 알고있습니다. 그러면 이것들도 데이터 페칭되지 않은 해당 페이지의 리액트 컴포넌트들만을 가져오는 것인가요?

  • react
  • typescript
  • next.js
gga01075 댓글 2 좋아요 0 조회수 243

ReentrantLock 과 Condition 에 대해 질문 있습니다.

미해결

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

public class BoundedQueueV4 implements BoundedQueue { private final Lock lock = new ReentrantLock(); private final Condition condition = lock.newCondition(); private final Queue<String> queue = new ArrayDeque<>(); private final int max; public BoundedQueueV4(int max) { this.max = max; } @Override public void put(String data) { lock.lock(); try { while (queue.size() == max) { log("[put] 큐가 가득 참, 생산자 대기"); try { condition.await(); log("[put] 생산자 깨어남"); } catch (InterruptedException e) { throw new RuntimeException(e); } } queue.offer(data); log("[put] 생산자 데이터 저장, notify() 호출"); condition.signal(); } finally { lock.unlock(); } } @Override public String take() { lock.lock(); try { while (queue.isEmpty()) { log("[take] 큐에 데이터가 없음, 소비자 대기"); try { condition.await(); log("[take] 소비자 깨어남"); } catch (InterruptedException e) { throw new RuntimeException(e); } } String data = queue.poll(); log("[take] 소비자 데이터 획득, notify() 호출"); condition.signal(); return data; } finally { lock.unlock(); } } @Override public String toString() { return queue.toString(); } } synchronized를 사용 했을때는 객체가 기본적으로 가지고 있는 락과 스레드 대기 공간을 사용하는거 같습니다. 궁금한점은 ReentrantLock 객체를 생성하고 Condition 객체를 생성하면 BoundedQueueV4 내부에 또 다른 락과 스레드 대기 공간이 생성 되는건가요?

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

멤버B의 주소 바꿔주는 방법에 관한 질문

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의중에 나온 이부분에 관해 질문이 있습니다. memberB.getAddress().setValue("부산"); memberB.setAddress(new ImmutableAddress("부산")); 여기서, 멤버B의 주소를 바꿔 줄때, memberB.getAddress().setValue("부산"); 를 하셨는데, 그냥 memberB.setValue("부산"); 라고 하면 안돼는 이유가 무엇인지 너무 궁금 합니다

  • java
  • 객체지향
dizzydimm 댓글 4 좋아요 0 조회수 267

어떤건 String.join이고 어떤건 str.split이렇게 하는데 어떻게 외우나요

미해결

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

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 자바 코테 준비하는데 위 함수들을 외우는 꿀팁같은거 없나요?

  • java
  • 객체지향
박준형 댓글 2 좋아요 0 조회수 175

img에 display: none을 주고 div에 background-img를 주는 이유

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요 제로초님. 강의 잘 보고 있습니다. <img src={ photo.link } alt={ photo.Post ?.content} /> <div className={style.image} style={{backgroundImage: `url(${ photo.link })`}} /> 여기서 css를 보니 img에 display none을 주고 div에 style의 bg로 이미지를 주셨던데 왜 이렇게 하신건지 특별한 이유가 있나요? 궁금합니다.

  • react
  • next.js
  • react-query
  • next-auth
  • msw
처음끝 댓글 2 좋아요 0 조회수 178

패러랠 라우팅 client-side 에러가 뜹니다.

미해결

Next + React Query로 SNS 서비스 만들기

병렬 라우팅에 문제가 있는 거 같아 문의 드립니다. 강의 그대로 패러렐 라우트, 인터셉터 라우트까지 모두 따라했었는데, "Application error: a client-side exception has occurred (see the browser console for more information)." 브라우저에 이런 에러가 뜨면서, 콘솔창에는 아래와 같이 에러가 뜨더라구요. app-index.js:33 Warning: Cannot update a component (`HotReload`) while rendering a different component (`Router`). To locate the bad setState() call inside Router , follow the stack trace as described in https://reactjs.org/link/setstate-in-render at Router (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js:207:11) at ErrorBoundaryHandler (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js:113:9) at ErrorBoundary (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js:160:11) at AppRouter (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js:585:13) at ServerRoot (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/app-index.js:112:27) at Root (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/app-index.js:117:11) window.console.error @ app-index.js:33 Show 1 more frame Show lessUnderstand this error react-dom.development.js:9126 Uncaught TypeError: initialTree is not iterable at applyPatch (apply-router-state-patch-to-tree.js:17:53) at applyRouterStatePatchToTree (apply-router-state-patch-to-tree.js:74:30) at applyRouterStatePatchToTree (apply-router-state-patch-to-tree.js:76:30) at eval (navigate-reducer.js:142:88)Understand this error app-index.js:33 The above error occurred in the <Router> component: at Router (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js:207:11) at ErrorBoundaryHandler (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js:113:9) at ErrorBoundary (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js:160:11) at AppRouter (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js:585:13) at ServerRoot (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/app-index.js:112:27) at Root (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/app-index.js:117:11) React will try to recreate this component tree from scratch using the error boundary you provided, ErrorBoundaryHandler. 그래서 어디서 난 에러인지 추리려고 인터셉터 라우트 부분은 아예 빼버리고, 패러랠 라우트 부분으로 확인해보는데, 패러랠 라우트 부분부터 아예 에러가 나서 이것이 문제인 거 같더라구요. { "name": "z-com", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint" }, "dependencies": { "classnames": "^2.5.1", "dayjs": "^1.11.13", "next": "14.2.11", "react": "^18", "react-dom": "^18" }, "devDependencies": { "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", "autoprefixer": "^10.4.20", "eslint": "^8", "eslint-config-next": "14.2.11", "postcss": "^8.4.47", "tailwindcss": "^3.4.12", "typescript": "^5" } } package.json과 디렉토리 구조는 이런 상태이구요. @modal/compose/tweet/page.tsx @modal/compose/tweet/modal.module.css @modal/default.tsx 이 세 파일은 깃헙 ch2-2 에 나온대로 그대로 적었습니다. import {ReactNode} from "react"; import style from '@/app/(afterLogin)/layout.module.css'; import Link from "next/link"; import Image from "next/image"; import ZLogo from '../../../public/zlogo.png'; import NavMenu from "@/app/(afterLogin)/_component/NavMenu"; import LogoutButton from "@/app/(afterLogin)/_component/LogoutButton"; import TrendSection from "@/app/(afterLogin)/_component/TrendSection"; import FollowRecommend from "@/app/(afterLogin)/_component/FollowRecommend"; // import RightSearchZone from "@/app/(afterLogin)/_component/RightSearchZone"; type Props = { children: ReactNode, modal: ReactNode } export default function AfterLoginLayout({ children, modal }: Props) { return ( <div className={style.container}> <header className={style.leftSectionWrapper}> <section className={style.leftSection}> <div className={style.leftSectionFixed}> <Link className={style.logo} href="/home"> <div className={style.logoPill}> <Image src={ZLogo} alt="z.com로고" width={40} height={40} /> </div> </Link> <nav> <ul> <NavMenu /> </ul> <Link href="/compose/tweet" className={style.postButton}> <span>게시하기dd</span> {/* <svg viewBox="0 0 24 24" aria-hidden="true" className="r-jwli3a r-4qtqp9 r-yyyyoo r-1472mwg r-dnmrzs r-bnwqim r-1plcrui r-lrvibr r-lrsllp"><g><path d="M23 3c-6.62-.1-10.38 2.421-13.05 6.03C7.29 12.61 6 17.331 6 22h2c0-1.007.07-2.012.19-3H12c4.1 0 7.48-3.082 7.94-7.054C22.79 10.147 23.17 6.359 23 3zm-7 8h-1.5v2H16c.63-.016 1.2-.08 1.72-.188C16.95 15.24 14.68 17 12 17H8.55c.57-2.512 1.57-4.851 3-6.78 2.16-2.912 5.29-4.911 9.45-5.187C20.95 8.079 19.9 11 16 11zM4 9V6H1V4h3V1h2v3h3v2H6v3H4z"></path></g></svg> */} </Link> </nav> <LogoutButton /> </div> </section> </header> <div className={style.rightSectionWrapper}> <div className={style.rightSectionInner}> <main className={style.main}>{children}</main> <section className={style.rightSection}> {/* <RightSearchZone /> */} <TrendSection /> <div className={style.followRecommend}> <h3>팔로우 추천</h3> <FollowRecommend /> <FollowRecommend /> <FollowRecommend /> </div> </section> </div> </div> {modal} </div> ) } layout.tsx도 위에 코드와 같이 거의 그대로 적었구요. 참고로 layout.tsx에서 console.log(modal) 했을 때, undefined 뜹니다. 근데 또 explore로 이동한 뒤 게시하기 버튼을 누르면 modal이 뜹니다. 이것 저것 다해보다가 도저히 안풀려서 문의드립니다. 제가 어디서 놓친 걸까요...

  • react
  • next.js
  • react-query
  • next-auth
  • msw
석봉토스트 댓글 2 좋아요 0 조회수 503

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

해결됨

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

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

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

검증 오류 시 api 전송

미해결

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

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

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

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 조회수 912

api 개발 시 회원가입 폼 요청

해결됨

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

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

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

인기 태그

인프런 TOP Writers

주간 인기글