inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

try-catch-finally를 사용해서 finally { notify() } 를 하지 않는 이유?

미해결

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

예제 3번 코드를 보다 의문이 들어 질문드립니다. 코드를 보면, @Override public synchronized void put(String data) { // 버퍼가 가득 찬 경우, 빌 때까지 주기적으로 체크 while (queue.size() == max) { log("[put] 큐가 가득 참, 생산자 대기"); try { wait(); log("[put] 생산자 깨어남"); } catch (InterruptedException e) { throw new RuntimeException(e); } } queue.offer(data); log("[put] 생산자 데이터 저장, notify() 호출"); notify(); // WAIT -> BLOCKED } 에서 인터럽트 예외가 발생하면 밑의 notify() 코드가 호출이 되지 않습니다. 이 문제 상황에서 한 스레드라도 notify()문을 호출하지 않게되면 영원히 대기 중인 스레드가 생겨서 정상적인 프로그램 종료가 일어나지 않을 것 같습니다. 그래서 제 생각은 notify() 메서드를 finally문으로 감싸줘야 한다고 생각하는데 이게 맞는지 궁금합니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
천권욱 댓글 1 좋아요 0 조회수 136

A3 내비게이션이 슬라이드 이미지에 가려져 앞으로 오지 않습니다.

해결됨

[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드

A3 뿐만 아니라 나머지도 앞으로 오지 않아서 질문합니다 ㅠㅠ (공지사항, 갤러리는 아직 만들지 않은 상태이며 여기 올려놓은 코드는 A3입니다...! 주석 처리시킨 이상한 메모는 무시해주세요 ㅠㅠ) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="css/stylesheet.css"> <script src="js/jquery-1.12.4.js"></script> <script src="js/custom.js"></script> <title>A3</title> </head> <body> <div class="container"> <header> <div class="header-logo"> <a href="#"> <img src="img/headerlogo.png" alt="header-logo"> </a> </div> <div class="navi"> <ul class="menu"> <li> <a href="#">강원천문대</a> <div class="sub-menu"> <a href="#">천문대소개</a> <a href="#">인사말</a> <a href="#">오시는길</a> </div> </li> <li> <a href="#">이용안내</a> <div class="sub-menu"> <a href="#">프로그램</a> <a href="#">관람시간표</a> <a href="#">이달의별자리</a> </div> </li> <li> <a href="#">천문대예약</a> <div class="sub-menu"> <a href="#">예약하기</a> <a href="#">예약확인</a> <a href="#">예약취소</a> <a href="#">정보서비스</a> </div> </li> <li> <a href="#">커뮤니티</a> <div class="sub-menu"> <a href="#">프로그램</a> <a href="#">공지사항</a> <a href="#">자유게시판</a> </div> </li> </ul> </div> </header> <div class="slide"> <div class="slide-items"> <a class="slide-item" href="#"> <img src="img/slide1.png" alt="slide1"> </a> <a class="slide-item" href="#"> <img src="img/slide2.png" alt="slide2"> </a> <a class="slide-item" href="#"> <img src="img/slide3.png" alt="slide3"> </a> </div> </div> <div class="items"> <div class="notice"></div> <div class="banner"> <a href="#"> <img src="img/banner.jpg" alt="banner"> </a> </div> <div class="direct"> <a href="#"> <img src="img/direct.png" alt="direct"> </a> </div> </div> <footer> <div class="footer-logo"> <a href="#"> <img src="img/footerLogo.png" alt="footer-logo"> </a> </div> <div class="footer-menu"> <div> <a href="#"> 하단메뉴1 </a> <a href="#"> 하단메뉴2 </a> <a href="#"> 하단메뉴3 </a> </div> <div> COPYRIGHTⓒ by WEBDESIGN. ALL RIGHTS RESERVED </div> </div> </footer> </div> </body> </html> @charset "utf-8"; body{ margin: 0; font-size: 15px; background-color: #fff; color: #333333; } a{ text-decoration: none; color: #333333; } .container{ /* border: 1px solid red; */ width: 1200px; margin: auto; } header{ background-color: rgb(150, 167, 236); height: 100px; } header div{ /* border: 1px solid blue; */ height: 100px; } .header-logo{ width: 200px; float: left; } .navi{ width: 600px; float: right; } .slide{ width: 1200px; height: 300px; position: relative; overflow: hidden; } .slide-items{ position: relative; } .slide-item{ position: absolute; top: 0; left: 0; } .slide div{ /* border: 1px solid green; */ height: 300px; } .items{ overflow: hidden; } .items div{ /* border: 1px solid violet; */ box-sizing: border-box; float: left; height: 200px; } .notice{ width: 500px; } .banner{ width: 350px; } .direct{ width: 350px; } footer{ background-color: rgb(222, 222, 222); overflow: hidden; } footer>div{ /* border: 1px solid salmon; */ height: 100px; float: left; box-sizing: border-box; } /*여기서부터는 일부분만 선택해서 적용하는거라 반드시 꺽쇠를 써야함!*/ .footer-logo{ width: 200px; } .footer-menu{ width: 1000px; } .footer-menu div{ /* border: 1px solid blueviolet; */ height: 50px; } /*모듈 이외 부분*/ .header-logo, .footer-logo{ text-align: center; line-height: 130px; } .footer-menu{ text-align: center; padding-top: 15px; } .footer-menu>div a{ padding: 10px; } .banner a>img, .direct a>img{ width: 350px; height: 200px; } /*내비게이션*/ .menu{ list-style: none; /* 점(목록에 쓰이는거) 없애줌*/ padding: 0; /*왼쪽 패딩 제거*/ margin-top: 35px; } .menu li{ border: 1px solid black; float: left; width: 150px;/*25%로 해도 됨*/ box-sizing: border-box; text-align: center; } .menu li>a{ /*기초 틀을 잡았으면, 모양을 만들자!*/ border: 1px solid black; display: block; padding: 5px; } .menu li:hover>a{ /*주의사항: .menu li>a:hover가 아니라 .menu li:hover>a임. 우리느 지금 박스에 호버를 줄꺼지 텍스트에 호버 줄껀 아니잖아*/ background-color: black; color: #fff; transition: 0.5s; } .sub-menu{ border: 1px solid black; background-color: #fff; display: none; } .sub-menu a{ display: block; /*배치!!*/ padding: 5px; } .sub-menu a:hover{ background-color: black; color: #fff; transition: 0.5s; } $(document).ready(function(){ /*Navigation*/ $('.menu li').mouseenter(function(){ $(this).children('.sub-menu').stop().slideDown(); }); $('.menu li').mouseleave(function(){ $(this).children('.sub-menu').stop().slideUp(); }); /*Slide*/ $('.slide-item:gt(0)').hide(); setInterval(function(){ $('.slide-item:first-child').fadeOut(500).next().fadeIn(500); $('.slide-item:first-child').appendTo('.slide-items'); }, 3000); });

  • HTML/CSS
  • jquery
  • 웹-디자인
도트유우카프사 댓글 1 좋아요 1 조회수 110

다대다 연관관계를

미해결

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

다대다 연관관계를 연결테이블을 추가해서 일대다, 다대일 관계로 풀어내야함. 강의 자료에 있는 위 말에 조금 혼동이 있어서 질문드립니다. 다대다 연관관게를 중간에 연결테이블을 두어서, 연결테이블을 기준으로 다대일 단방향 연관관계나, 다대일 양방향 연관관계로 하는것을 말하는것일까요? 아니면, 이전 앞선 강의에서 학습한 일대다 단방향 연관관계를 말씀하시는걸까요..? 강의에서는 중간 테이블을 기준으로 다대일 양방향 연관관계로 진행하신거 같은데, 강의자료에 있는 일대다 관계로 풀어냈다는 말의 의미가 무엇인지 혼동이 와서 질문드립니다..

  • java
  • jpa
오리쉐리 댓글 3 좋아요 0 조회수 135

다대다 연관관계에서

미해결

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

강의에서 다대다 연관관계 일때는, 중간에 엔티티를 하나 더 추가해서 일대다, 다대일 관계로 하는게 효율적이라고 말씀하셨습니다. 1. 그래서 MEMBER와 PRODUCT간에 다대다 관계인것을 중간에 ORDER를 추가해서 일대다, 다대일 관계로 해야하는거 같은데, 여기서 말씀하신 일대다 관계라는게, 앞선 강의에 있는 일대다 단방향 연관관계를 말하는것일까요?? MEMBER -> ORDER간에 일대다 단방향 연관관계를 말씀하시는것인지, 아니면 MEMBER <-> ORDER 간에 다대일 양방향 연관관계로 하는것을 말씀하시는것인지 헷갈려서 질문드립니다.. 즉, 여기서 말하는 일대다 관계라는게 MEMBER에서 외래키를 관리하는 일대다 단방향 연관관계의 개념인것인지, 중간테이블 관점에서 다대일 관계를 말하는것인지 헷갈려서 질문드립니다.. 2. 다대다 연관관계일때는 중간에 엔티티를 두어, 중간 엔티티를 기준으로 다대일 단방향 연관관계나, 다대일 양방향 연관관계로 해야 하는것일까요??

  • java
  • jpa
오리쉐리 댓글 3 좋아요 0 조회수 145

반응형 레이아웃 문의 드려요.

미해결

Tailwind CSS로 만드는 멋진 웹 UI 스타일링

죄송하지만 질문하실 때 React 또는 Vue와 같은 자바스크립트 프레임워크에서 Tailwind CSS 설치 및 사용에 관한 질문은 하지 말아주세요. 질문하셔도 React 또는 Vue 환경을 몰라서 답변을 드릴 수가 없습니다. 오직 순수한 Tailwind CSS 관련 질문과 CSS 속성 및 활용에 관한 질문만 해주시면 감사드리겠습니다. 강의명 : 반응형 레이아웃 - Responsive Design Container 과 Responsive Design 차이가 아래가 맞을까여? Container: 전체적으로 반응형으로 설정 Responsive Design : 선언한 엘리먼트 기으로 (국소적으로) 레이아웃을 세세하게 컨트롤 한다

  • HTML/CSS
  • 반응형-웹
  • tailwindcss
아무도_모를_아이디 댓글 2 좋아요 1 조회수 158

react-beatiful-dnd에서 문제가 발생합니다.

미해결

따라하며 배우는 리액트 A-Z[19버전 반영]

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 기능상에 문제가 있는건 아니지만, 계속해서 아래의 에러가 발생합니다. 사용하고 있는 버전의 문제일까요? { "name": "react-todo-app", "version": "0.1.0", "private": true, "dependencies": { "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "6.6.3", "@testing-library/react": "16.2.0", "@testing-library/user-event": "13.5.0", "react": "^19.0.0", "react-beautiful-dnd": "13.1.1", "react-dom": "^19.0.0", "react-scripts": "5.0.1", "web-vitals": "2.1.4" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] }, "devDependencies": { "autoprefixer": "10.4.20", "postcss": "8.5.3", "tailwindcss": "3.4.17" } } Lists.js import React from 'react'; import List from './List.js' import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd'; const Lists = React.memo(({todoData, setTodoData}) => { // console.log('Lists Component') const handleEnd = (result) => { if(!result.destination) return; const newTodoData = Array.from(todoData); const [reorderedItem] = newTodoData.splice(result.source.index, 1); newTodoData.splice(result.destination.index, 0, reorderedItem); setTodoData(newTodoData); } return <div> <DragDropContext onDragEnd={handleEnd}> <Droppable droppableId='todo'> {(provided, snapshot) => ( <div ref={provided.innerRef} {...provided.droppableProps} > {(todoData ?? []).map((data, index) => ( <Draggable key={data.id} draggableId={data.id.toString()} index={index} > {(provided, snapshot) => ( <List key={data.id} id={data.id} title={data.title} completed={data.completed} provided={provided} snapshot={snapshot} todoData={todoData} setTodoData={setTodoData} /> )} </Draggable> ))} {provided.placeholder} </div> )} </Droppable> </DragDropContext> </div>; }) export default Lists; App.js import React, {useState} from 'react' import "./App.css" import Lists from './components/Lists' import Form from './components/Form' export default function App() { // console.log('App Component') const [todoData, setTodoData] = useState([ { id: 1, title: '운동하기', completed: false, }, { id: 2, title: '공부하기', completed: false, } ]) const [value, setValue] = useState("") return ( <div className="flex items-center justify-center w-screen h-screen bg-blue-100" > <div className='full p-6 m-4 bg-white rounded shadow md:w-3/4 md:max-w-lg lg:w-3/4 lg:max-w-lg'> <div className="flex justify-between mb-3"> <h1>할 일 목록</h1> </div> <Lists todoData={todoData} setTodoData={setTodoData} /> <Form value={value} setValue={setValue} setTodoData={setTodoData}/> </div> </div> ) }

  • react
  • redux
  • tdd
  • typescript
  • next.js
  • 소프트웨어-테스트
  • react-beatiful-dnd
  • isdropdisabled
고유림 댓글 1 좋아요 0 조회수 127

cmd 글꼴변경

해결됨

기초 탄탄! 독하게 시작하는 Java - Part 1 : 절차적 프로그래밍

안녕하세요? 자바를 입문하게된 컴공 학부생입니다. 다름이 아니라 cmd 글꼴 변경을 consolas로 하고 싶어 기본값을 consolas로 변경하였으나 변경이 되지 않습니다. 강사님 콘솔에서는 consolas로 출력되는 것 같아 질문드립니다.

  • java
whypark12 댓글 2 좋아요 0 조회수 256

useEffect 관련 질문드립니다.

미해결

실무 중심! FE 입문자를 위한 React

useEffect의 dependency array에 배열을 넣는 경우 "Maximum update depth exceeded." error가 발생하게 되는데, 이 경우는 어떻게 해야하나요? 예를 들어 아래와 같은 상황이라고 가정하겠습니다. 화면에는 테이블 1개만 존재한다. 데이터는 unknown[] 형태이다. 다른 조건에 의해 데이터의 갯수가 달라지는 경우에만 다시 렌더링한다. 코드로 예시를 들면 아래와 같습니다. const [items, setItems] = useState<unknown[]>([]); useEffect(() => void, [items]) 답변주시면 감사합니다.

  • react
  • redux
  • node.js
  • sass
  • swr
이준영 댓글 0 좋아요 0 조회수 147

Error: Route "/search" used `searchParams.q`. `searchParams` should be awaited before using its properties.

해결됨

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

안녕하세요 강사님 해당 오류는 최신버전에서 발생하는건가요?! Error: Route "/search" used searchParams.q . searchParams should be awaited before using its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis at Page (src/app/(with-searchbar)/search/page.tsx:12:32) 10 | return ( 11 | <div> > 12 | Search 페이지 : {searchParams.q} | ^ 13 | <ClientComponent> 14 | <></> 15 | </ClientComponent> import ClientComponent from "@/components/client-component"; export default function Page({ searchParams, }: { searchParams: { q?: string; } }) { return ( <div> Search 페이지 : {searchParams.q} <ClientComponent> <></> </ClientComponent> </div> ) }

  • react
  • typescript
  • next.js
강프로그래머 댓글 2 좋아요 0 조회수 253

Projection 개념과 데이터 전달과정에 대해 질문 있습니다.

미해결

실전! 스프링 데이터 JPA

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 궁금한게 있어서 질문합니다. Projection관련인데요. 제가 이해하기로는 new 오퍼레이션을 이용해서 dto에 생성자로 데이터를 담는 방식에서 진화한 방식이라고 생각되는데, 그렇게 이해는게 맞는지 궁금합니다. interface로 proejction을 사용하면 get()함수를 통해 데이터를 꺼내오는 방식이고 class를 사용하면 new 오페레이션을 사용하는 방법과 똑같이 생성자를 이용하는거 같은데, 대신 필드의 이름과 엔터티의 이름이 같던가, 같지 않다면 @Query를 이용해 alias로 맞춰주던가 하면 되는걸까요?? 또한, 이렇게 Projection을 사용해서 데이터를 가져왔을대, interface던 class던 컨트롤러에서 데이터를 프론트로 넘길때 해당 객체를 사용해도 되는건가요? 아니면 따로 또 dto를 만들어서 담은 후에 내보내야 되는건가요??

  • java
  • spring
  • spring-boot
  • jpa
  • projection
배성환 댓글 1 좋아요 0 조회수 153

사이트 전체 Route 구조 짜기 영상 10분쯤 코드가 똑같은데 연결이 안되요

해결됨

(2025) MBTI 테스트 기반 수익형 웹사이트 만들기 - <코딩 배워 사업하자>

영상 10분쯤 나오는 파트에서 Main.jsx와 App.jsx 코드를 아예 똑같이 썼는데도 사이트에 연결할 수 없다고 뜹니다 어떻게 해야 하나요 vsc에서는 Main이 선언은 되었지만 해당 값이 읽히지는 않았습니다 ts(6133)이라고 뜯니다

  • react
  • aws
  • Google-Analytics
  • cloudflare
  • adsense
  • 수익화
도도한 염소 댓글 2 좋아요 0 조회수 270

12.18 새 일기 쓰기 페이지 제목 수정 관련

해결됨

한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

index.html <!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <link rel="icon" type="image/svg+xml" href="/vite.svg" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Emotion Diary</title> </head> <body> <div id="root"></div> <script type="module" src="/src/main.jsx"></script> </body> </html> New.jsx import Header from "../components/Header"; import Button from "../components/Button"; import Editor from "../components/Editor"; import { useNavigate } from "react-router-dom"; import { useContext, useEffect } from "react"; import {DiaryDispatchContext} from "../App"; import usePageTitle from "../hooks/usePageTitle"; const New=()=>{ const{onCreate}=useContext(DiaryDispatchContext); const nav=useNavigate(); usePageTitle(`${useParams.id}번 일기 수정`); const onSubmit=(input)=>{ onCreate( input.createdDate.getTime(), input.emotionId, input.content ); nav('/',{replace: true}); }; return ( <div> <Header title={"write new diary"} leftChild={<Button onClick={()=>nav(-1)} text={"< back"}/>} /> <Editor onSubmit={onSubmit}/> </div> ); }; export default New; usePageTitle.jsx import { useEffect } from "react"; const usePageTitle=(title)=>{ useEffect(()=>{ const $title=document.getElementByTagName("title")[0]; $title.innerText=title; },[title]); }; export default usePageTitle; 이전 과정까지는 문제없었는데 12.18에 있는 새일기 쓰기 페이지에 들어왔을 때 페이지에 아무것도 뜨지 않는 문제가 발생하는데 어떤게 문제일까요

  • javascript
  • react
  • node.js
진성원 댓글 2 좋아요 0 조회수 109

20:15 함수와 재귀함수

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

문자길이값에 Hello, world! 13이라하셨는데 0부터 세는게 아니고 1부터 세는 건가요? 값구할때 0부터 시작이라고 한것같은데 문자길이에선 다른가요?

  • python
  • java
  • c
  • 정보처리기사
리안 댓글 1 좋아요 0 조회수 96

실습 코드 있을까요?

미해결

처음 만난 리액트(React)

안녕하세요 감사하게도 강의 잘 듣고있습니다. 혹시 실습한 코드를 받을 수 있는 git 있을까요? 개발환경 버전이 달라서 그런지 챕터6하는데 원치않게 동작하는게 있어서요

  • HTML/CSS
  • javascript
  • react
호호하하 댓글 2 좋아요 1 조회수 231

단축키 질문입니다.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

DTO와 인증 서비스 2분 33초에서 35초 사이에 코드가 갑자기 생기는데요. 혹시 어떤 단축키 눌른건지 알 수 있을까요? Alt + Insert 눌러도 super까지 포함된 메소드는 나오지 않아서요. public MemberDTO(String email, String pw, String nickname, boolean social, List<String> roleNames) { super( email, pw, roleNames.stream().map(str -> new SimpleGrantedAuthority("ROLE_"+str)).collect(Collectors.toList())); this.email = email; this.pw = pw; this.nickname = nickname; this.social = social; this.roleNames = roleNames; }

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
zzzzz 댓글 1 좋아요 0 조회수 56

서비스계층과 컨트롤러(3) 질문있습니다.

미해결

코드로 배우는 React 19 with 스프링부트 API서버

서비스계층과 컨트롤러(3)-상품수정 5분 42초에서 uuid값은 화면쪽에서 처리되면서 붙는다는게 무슨 의미인지 알 수 있을까요? @Override public void modify(ProductDTO productDTO) { //step1 read Optional<Product> result = productRepository.findById(productDTO.getPno()); Product product = result.orElseThrow(); //change pname, pdesc, price product.changeName(productDTO.getPname()); product.changeDesc(productDTO.getPdesc()); product.changePrice(productDTO.getPrice()); product.changeKeyword(product.getKeyword()); //upload File -- clear first 내용이 있을 수도 있기 때문에. product.clearList(); List<String> uploadFileNames = productDTO.getUploadFileNames(); if(uploadFileNames != null && uploadFileNames.size() > 0 ){ uploadFileNames.stream().forEach(uploadName -> { product.addImageString(uploadName); }); } productRepository.save(product); } CustomFileUtil에서 saveFiles메소드에서 List<String> uploadNames = new ArrayList<>(); 배열을 선언하고 ProductServiceImp에서는 product.clearList();로 있던 배열에서 내용을 지우면서 사용하는데요. CustomFileUtil클래스 에서 데이터 베이스 1행에 저장할 리스트 생성해주고 그 리스트를 수정하는 역할이 product.clearList(); 인가요?

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
zzzzz 댓글 2 좋아요 0 조회수 70

router.replace를 하는데 setCurrent에서 변경한 상태가 유지?

미해결

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

라우터가 이동하면 상태가 초기화 됐던걸로 아는데, setCurrent는 왜 계속 유지가 되나요? 쉘로우 라우팅도 아닌데,,, 제가 잘못알고있나요?

  • react
  • next.js
  • react-query
  • next-auth
  • msw
트릴 댓글 2 좋아요 0 조회수 184

로그인 실패 로직 질문

미해결

코드로 배우는 React 19 with 스프링부트 API서버

현재 APILoginFailHandler에서 로그인 실패 처리를 하고 있는데 CustomUserDetailService에서 굳이 예외를 던질 필요가 있는지 궁금합니다. 제가 이해한 바로는 loadUserByUsername에서 제대로 로그인 처리가 안되면 failHandler가 실행되는 것으로 이해했는데 왜 여기서 예외를 던지는지 궁금합니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
yso829612 댓글 2 좋아요 0 조회수 64

MEMBER테이블에 TEAM_ID컬럼이 생기는 이유

미해결

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

일대다 단방향 연관관계에서, @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String name; ... getter and setter } @Entity public class Team { @Id @GeneratedValue @Column(name = "TEAM_ID") private Long id; private String name; @OneToMany @JoinColumn(name = "TEAM_ID") private List<Member> members = new ArrayList<>(); ... getter and setter } Member member = new Member(); member.setName("member1"); em.persist(member); Team team = new Team(); team.setName("teamA"); team.getMembers().add(member); em.persist(team); 1-1. @OneToMany @JoinColumn(name = "TEAM_ID") private List<Member> members = new ArrayList<>();를 통해 MEMBER테이블에 TEAM_ID컬럼이 생기는거 같은데, 다른 여러 테이블도 있다고 가정했을때 어떤 이유로 MEMBER테이블에 TEAM_ID컬럼이 생성되는것인가요? @JoinColumn(name = "TEAM_ID")만 보고 MEMBER테이블인지 어떻게 아는것인가요..? List<Member> members 에서 Member라고 지정해줬기때문에 MEMBER테이블에 TEAM_ID컬럼이 생기는것인가요? 1-2 @OneToMany와 @JoinColumn을 통해 일대다 단방향 연관관계나 일대다 양방향 연관관계를 하게되면 무조건 다쪽 테이블에 외래키 컬럼이 추가되는건가요??

  • java
  • jpa
오리쉐리 댓글 1 좋아요 0 조회수 105

libs가 없습니다... ㅠㅠ

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] hello-spring파일까지 이동한 후 gradlew.bat을 입력해서 실행했는데요 BUILD SUCCESSFUL이라고 떴습니다. 그 후 cd build해서 들어간 후 dir을 입력하니까 libs라는 폴더는 없네요... 이유가 뭘까요 ㅠㅠ께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] hello-spring파일까지 이동한 후 gradlew.bat을 입력해서 실행했는데요 BUILD SUCCESSFUL이라고 떴습니다. 그 후 cd build해서 들어간 후 dir을 입력하니까 libs라는 폴더는 없네요... 이유가 뭘까요 ㅠㅠ

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

인기 태그

인프런 TOP Writers

주간 인기글