묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
PageResponseDTO 질문이 있습니다.
package com.example.backend.mallapi.dto; import lombok.Builder; import lombok.Data; import java.util.List; import java.util.stream.Collectors; import java.util.stream.IntStream; @Data public class PageResponseDTO<E> { private List<E> dtoList; private List<Integer> pageNumList; private PageRequestDTO pageRequestDTO; private boolean prev, next; private int totalCount, prevPage, nextPage, totalPage, current; @Builder(builderMethodName = "withAll") public PageResponseDTO(List<E> dtoList, PageRequestDTO pageRequestDTO, long totalCount) { this.dtoList = dtoList; this.pageRequestDTO = pageRequestDTO; this.totalCount = (int)totalCount; int end = (int)(Math.ceil( pageRequestDTO.getPage() / 10.0 )) * 10; int start = end - 9; int last = (int)(Math.ceil((totalCount/(double)pageRequestDTO.getSize()))); end = end > last ? last: end; this.prev = start > 1;//1보다 크면 참 밑에 if문 실행. this.next = totalCount > end * pageRequestDTO.getSize(); this.pageNumList = IntStream.rangeClosed(start,end).boxed().collect(Collectors.toList()); // start부터 end까지 연속된 숫자 스트림(IntStream)을 생성 // rangeClosed(a, b): a부터 b까지 포함 // IntStream은 기본형 int 스트림이기 때문에, // 객체형 리스트(List<Integer>)로 변환하기 위해 .boxed()를 사용. // 스트림을 리스트로 변환하는 역할 if(prev) { this.prevPage = start -1; } if(next) { this.nextPage = end + 1; } this.totalPage = this.pageNumList.size(); this.current = pageRequestDTO.getPage(); } }위에 코드를 옆에처럼 디버깅할려면(https://www.youtube.com/watch?v=OHrLRg150As )즉 step over로 사용도 하면서 한 줄 한 줄 씩 어떻게 실행되는 지 보고 싶은데 아래와 같이 에러가 나옵니다.혹시 스프링부트를 사용하면 디버거 모드가 활성화가 안되나요? 아래 사진을 보시면 38번째 줄에 브레이크 포인트 표시 해놨고 우측 상단에 디버그 모드도 실행되어있는데 중앙에 네모박스처럼 step over 모드가 비활성화 되어있습니다. 한 줄 한줄씩 디버깅을 할려면 어떻게 해야하는지 궁금합니다.
-
해결됨LangGraph를 활용한 AI Agent 개발 (feat. MCP)
수강에 대한 질문이 있습니다.
안녕하세요, RAG를 활용한 LLM Application 개발 강의를 수강했던 수강생 입니다. 수강 이후 약 두달정도 langchain을 놓은 상태라 거의.. 리셋된 상태입니다. 마지막으로 짰던 코드는 이해는 가는데 강의 내용이 세세하겐 떠오르지 않네요. 이와 같은 상황에서 그냥 바로 수강을 해도 될까요 아니면 RAG LLM 강의를 다시 한번 돌리고 시작하는 게 나을까요?? 답변 감사합니다!
-
미해결[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
피그마에서 과제 및 싸이월드 과제를 못찾고 있어요
피그마로 들어갔는데 과제관련한 회원가입을 찾을 수가 없어요. 그리고 섹션을 살펴봤는데요 여긴 섹션3번인데 안보이네요.. 제가 못찾고 있는것 같은데요
-
미해결[취업폭격기] 공공기관 전산직(IT) 취업 준비를 위한 정규과정 (기초~고급)
스펙 및 전공 공부 관련 질문 드립니다.
안녕하세요 강의 잘 듣고 있습니다. 직장을 다니면서 공기업 이직 병행 준비 중인 회사원입니다.강의 수강 중 궁금한 사항이 있어 질문 드립니다. 보유 spec비전공자인서울 중상위, 4.03 학점스타트업 BE 개발자 경력 3년토익 875한능검 1급정보처리기사JLPT 1급 질문토익은 900 초반까지 시간을 2주 정도 들여서 올리는 것이 의미 있을까요?예전에 900 중반 보유했었고, 최근 취득한 875는 기출 1회 풀고 취득한 점수입니다.오픽 IH를 추가로 취득하는 것은 어떨까요? 예전에 IH 보유했었습니다. 만약 공부한다면 1주일 정도 투자해 볼 생각입니다!sqld, ADSP 등의 자격증을 공부와 병행하여 취득하는 것이 의미 있을까요?한국사, 토익, 정처기 3가지 기본 스펙을 보유하면 전공에 올인 하는게 기본이라 들었지만, 오픈 채팅에서는 위와 같은 자격을 추가로 취득하는 것을 추천하는 의견도 많아서 질문드렸습니다!한능검 취득 완료하여 전공 필기를 대비하려고 합니다. 이때 신처기 책을 회독 후 컴퓨터 일반책으로 넘어가는 것이 좋을까요? 아니면 바로 컴퓨터 일반을 공부할까요?discord에 다른 분 상담 내역을 보았을 때, 정처기 취득했다면 컴일로 바로 회독해도 된다는 글을 봐서 질문드립니다.코딩 테스트는 보통 IDE 사용이 불가능하고 직접 모두 타이핑 해야 하는 프로그래머스 환경인지도 궁금합니다.만약 이렇다면 IDE에서 풀고 옮겨 적는 방식도 부정행위인지 궁금합니다.이미 강의에서 설명해주신 부분도 있는데 한번 더 확인 차 질문 드립니다.감사합니다. 🙂
-
해결됨[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)
vscode에서 @material-tailwind/react component를 가져왔을 때 뜨는 빨간줄 제거할 수는 없나요?
✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다.💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 안녕하세요?질 좋은 강의 잘 듣고 있습니다.코드를 치면서 신경쓰이는 부분이 있어서 질문드립니다.vscode에서 @material-tailwind/react component를 가져왔을 때 뜨는 빨간줄 없앨 수는 없나요?
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
노션 파일 중에서 contact input내용이 전부 날아가있네요
코드가 조금 다른 것 같습니다.2. 문의하기 누르면 어드민으로 문의하기가 넘어가고 어드민으로 들어왔을때 확인 되어야하는거죠?제가 놓친 것 같아서 깃허브를 찾아서 복사 붙여넣기하니,아래 처럼 뜹니다.저희가 이걸 배운적이 있나요? 있다면 어느 부분인지 궁금합니다.import ContactLocale from "../../Locale/Contact.json"; [plugin:vite:import-analysis] Failed to resolve import "../../Locale/Contact.json" from "src/Page/Contact/Contact.jsx". Does the file exist?C:/Users/shin/Desktop/company_website/frontend/src/Page/Contact/Contact.jsx:4:2619 | import { motion } from "framer-motion"; 20 | import axios from "axios"; 21 | import ContactLocale from "../../Locale/Contact.json"; | ^ 22 | const Contact = () => { 23 | _s();
-
미해결김영한의 실전 자바 - 중급 2편
오타 문의드립니다.
안녕하세요?항상 재미있는 수업 감사드리며 수업을 너무 잘 듣고 있는 와중 오타로 의심되는 단어가 있어 문의를 드립니다섹션10 강의에 사용되는 PDF 파일인 9.컬렉션 프레임워크- Map 파일 5페이지 키와 값 목록 조회 부분에Entry 는 키-값의 쌍으로 이루어진 간단한 객체이다. Entiry 는 Map 내부에서 키와 값을 함께 묶어서 저장할 때 사용한다.에서 초록색으로 칠이 된 단어가 오타라고 생각 되어 문의 드립니다감사합니다.
-
미해결엑셀 활용하기 : EXCEL 중급 (Inflearn Original)
파워쿼리 웹스크래핑이 안돼요!
선생님 웹스크래핑을 하려고 하는데, 선생님께서 수업 중에 설명해주신 것과 다른 창이 뜨고, 거기에다 주소를 입력해서 가져오기 하려고 하는데 작업이 되지 않아요! 도와주세요~~
-
미해결스프링 핵심 원리 - 기본편
memberRepository 3개다 같은 참조값으로 나와야하는데 다른 참조값
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 다른 코드들 다 똑같이 작성했는데 memberRepository, 1, 2 모두다 다른 참조값으로 출력이 됩니다. 이렇게 되면 어디쪽에서 문제가 발생한걸까요?
-
미해결스프링부트 시큐리티 & JWT 강의
13:23 system.out 출력문이 다르게 나옵니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의 내용처럼 userDetails : User(id=1, username=ssar, , 이렇게 뜨지 않고 아래와 같이 출력됩니다.userDetails : com.myproject.BasicBoard.entity.User@2c6c7d57 getDetails.getUser() authentication 출력문도 마찬가지입니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
jpa 1:N insert시 트랜잭션 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @Entity @Table(name = "tb_board") @NoArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "BOARD_ID", columnDefinition = "BIGINT COMMENT '게시판ID'") private Long id; @Column(name = "BOARD_NM", nullable = false, unique = true, length = 100, columnDefinition = "VARCHAR(100) COMMENT '게시판명'") private String boardNm; @OneToMany(mappedBy = "board", cascade = CascadeType.ALL, orphanRemoval = true) private List<Article> articleList = new ArrayList<Article>(); @Builder private Board(Long boardId, String boardNm) { this.boardNm= boardNm; this.id = boardId; } public Board createBoard(Long boardId, String boardNm) { return Board.builder().boardId(boardId).boardNm(boardNm).build(); } public void addArticle(Article article) { this.articleList.add(article); } @Column(name="REG_ID" ,nullable=false,columnDefinition="VARCHAR(100) comment '등록자'") private String regId; @Column(name = "CREATED_AT", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") private LocalDateTime createdAt; @Column(name="UPD_ID" ,nullable=false,columnDefinition="VARCHAR(100) comment '등록자'") private String updId; @Column(name = "UPDATED_AT", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") private LocalDateTime updatedAt; } @Entity @Table(name = "tb_article") @Builder @Getter @Setter @AllArgsConstructor @NoArgsConstructor public class Article { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ARTICLE_ID", columnDefinition = "BIGINT COMMENT '게시글ID'") private Long id; @Column(name = "ARTICLE_TITLE", columnDefinition = "VARCHAR(100) COMMENT '게시글제목'") private String title; @Column(name = "ARTICLE_CONTENT", columnDefinition = "VARCHAR(600) COMMENT '게시글내용'") private String content; @Column(name = "REG_ID", nullable = false, columnDefinition = "VARCHAR(100) comment '등록자'") private String regId; @Column(name = "CREATED_AT", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") private LocalDateTime createdAt; @Column(name = "UPD_ID", nullable = false, columnDefinition = "VARCHAR(100) comment '등록자'") private String updId; @Column(name = "UPDATED_AT", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") private LocalDateTime updatedAt; @ManyToOne @JoinColumn(name = "BOARD_ID", nullable = false) private Board board; } @Transactional(rollbackFor = Exception.class) // 체크 예외도 롤백 public void saveArticle(Article article) { try { log.info("article",article.getTitle()); Long boardId = 13L; Board paramBoard = null; Optional<Board> rBoard = boardRepository.findById(boardId); if(rBoard.isPresent()) { paramBoard =rBoard.get(); }else { paramBoard = new Board().createBoard(boardId, "게시판"); paramBoard = boardRepository.save(paramBoard); } Article paramArticle = Article.builder() .title(article.getTitle()) .content(article.getContent()) .regId("등록자") .createdAt(LocalDateTime.now()) .updatedAt(LocalDateTime.now()) .board(paramBoard) .updId("수정자") .build(); if(paramBoard.getArticleList() == null) { List<Article> articles =new ArrayList<Article>(); articles.add(paramArticle); paramBoard.setArticleList(articles); }else { paramBoard.getArticleList().add(paramArticle); } boardRepository.save(paramBoard); }catch(Exception ex) { log.error("Error saving article", ex); throw ex; } }else { paramBoard = new Board().createBoard(boardId, "게시판"); paramBoard = boardRepository.save(paramBoard); } 여기서 save를 돌떄 org.springframework.orm.ObjectOptimisticLockingFailureException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.backend.com.entity.Board#13] at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:325) ~[spring-orm-6.2.2.jar:6.2.2] at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:244) ~[spring-orm-6.2.2.jar:6.2.2] 요런식으로 뜨는데public interface BoardRepository extends JpaRepository<Board, Long>, QuerydslPredicateExecutor<Board> { Optional<Board> findById(Long boardId); } querydsl과 jpa같이 사용하고싶어서 요렇게 셋팅하고 공부중입니다. 해본 방법boardRepository.save(paramBoard) 부분을 빼고 마지막boardRepository.save(paramBoard); 만 돌려봤지만 마찬가지 에러가 발생했었고 혹시 table 쪽에 lock이 걸려있나 싶어서 보니 lock도 없었음3. 지피티 한테 물어보니깐 @Lock(LockModeType.PESSIMISTIC_WRITE)쓰라고 해서 save쪽에 넣어봄 . 마찬가지 ..Board쪽에 @Version @Column(name = "version") private Long version;을 추가하라고 해서 추가해봐도 마찬가지 ..이유는 "Row was updated or deleted by another transaction" 오류는 동시에 여러 트랜잭션에서 동일한 데이터를 수정하거나 삭제할 때 발생할 수 있습니다. 즉, 한 트랜잭션에서 데이터를 수정하는 동안 다른 트랜잭션에서 동일한 데이터를 수정하거나 삭제했기 때문에 충돌이 발생하는 것이라는데 잘 모르겠습니다 뭐가 문제일까요 .
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
테스트 실행 시 "ClassNotFoundException" 에러
테스트 실행 시 "ClassNotFoundException" 에러 나시는 분들은 https://bit.ly/4hIOchi 이 글 한번 참고해보세요. 이 글 보고 해결했습니다.
-
미해결
JPA insert 에러 transaction 질문입니다.
import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @Entity @Table(name = "tb_board") @NoArgsConstructor(access = AccessLevel.PUBLIC) @Getter @Setter public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "BOARD_ID", columnDefinition = "BIGINT COMMENT '게시판ID'") private Long id; @Column(name = "BOARD_NM", nullable = false, unique = true, length = 100, columnDefinition = "VARCHAR(100) COMMENT '게시판명'") private String boardNm; @OneToMany(mappedBy = "board", cascade = CascadeType.ALL, orphanRemoval = true) private List<Article> articleList = new ArrayList<Article>(); @Builder private Board(Long boardId, String boardNm) { this.boardNm= boardNm; this.id = boardId; } public Board createBoard(Long boardId, String boardNm) { return Board.builder().boardId(boardId).boardNm(boardNm).build(); } public void addArticle(Article article) { this.articleList.add(article); } @Column(name="REG_ID" ,nullable=false,columnDefinition="VARCHAR(100) comment '등록자'") private String regId; @Column(name = "CREATED_AT", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") private LocalDateTime createdAt; @Column(name="UPD_ID" ,nullable=false,columnDefinition="VARCHAR(100) comment '등록자'") private String updId; @Column(name = "UPDATED_AT", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") private LocalDateTime updatedAt; }@Entity @Table(name = "tb_article") @Builder @Getter @Setter @AllArgsConstructor @NoArgsConstructor public class Article { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ARTICLE_ID", columnDefinition = "BIGINT COMMENT '게시글ID'") private Long id; @Column(name = "ARTICLE_TITLE", columnDefinition = "VARCHAR(100) COMMENT '게시글제목'") private String title; @Column(name = "ARTICLE_CONTENT", columnDefinition = "VARCHAR(600) COMMENT '게시글내용'") private String content; @Column(name = "REG_ID", nullable = false, columnDefinition = "VARCHAR(100) comment '등록자'") private String regId; @Column(name = "CREATED_AT", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") private LocalDateTime createdAt; @Column(name = "UPD_ID", nullable = false, columnDefinition = "VARCHAR(100) comment '등록자'") private String updId; @Column(name = "UPDATED_AT", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") private LocalDateTime updatedAt; @ManyToOne @JoinColumn(name = "BOARD_ID", nullable = false) private Board board; } @Transactional(rollbackFor = Exception.class) // 체크 예외도 롤백 public void saveArticle(Article article) { try { log.info("article",article.getTitle()); Long boardId = 13L; Board paramBoard = null; Optional<Board> rBoard = boardRepository.findById(boardId); if(rBoard.isPresent()) { paramBoard =rBoard.get(); }else { paramBoard = new Board().createBoard(boardId, "게시판"); paramBoard = boardRepository.save(paramBoard); } Article paramArticle = Article.builder() .title(article.getTitle()) .content(article.getContent()) .regId("등록자") .createdAt(LocalDateTime.now()) .updatedAt(LocalDateTime.now()) .board(paramBoard) .updId("수정자") .build(); if(paramBoard.getArticleList() == null) { List<Article> articles =new ArrayList<Article>(); articles.add(paramArticle); paramBoard.setArticleList(articles); }else { paramBoard.getArticleList().add(paramArticle); } boardRepository.save(paramBoard); }catch(Exception ex) { log.error("Error saving article", ex); throw ex; } }else { paramBoard = new Board().createBoard(boardId, "게시판"); paramBoard = boardRepository.save(paramBoard); } 여기서 save를 돌떄 org.springframework.orm.ObjectOptimisticLockingFailureException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [com.backend.com.entity.Board#13] at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:325) ~[spring-orm-6.2.2.jar:6.2.2] at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:244) ~[spring-orm-6.2.2.jar:6.2.2] 요런식으로 뜨는데해본 방법boardRepository.save(paramBoard) 부분을 빼고 마지막boardRepository.save(paramBoard); 만 돌려봤지만 마찬가지 에러가 발생했었고 혹시 table 쪽에 lock이 걸려있나 싶어서 보니 lock도 없었음3. 지피티 한테 물어보니깐 @Lock(LockModeType.PESSIMISTIC_WRITE)쓰라고 해서 save쪽에 넣어봄 . 마찬가지 ..Board쪽에 @Version @Column(name = "version") private Long version;을 추가하라고 해서 추가해봐도 마찬가지 ..이유는 "Row was updated or deleted by another transaction" 오류는 동시에 여러 트랜잭션에서 동일한 데이터를 수정하거나 삭제할 때 발생할 수 있습니다. 즉, 한 트랜잭션에서 데이터를 수정하는 동안 다른 트랜잭션에서 동일한 데이터를 수정하거나 삭제했기 때문에 충돌이 발생하는 것이라는데 잘 모르겠습니다 뭐가 문제일까요 .public interface BoardRepository extends JpaRepository<Board, Long>, QuerydslPredicateExecutor<Board> { Optional<Board> findById(Long boardId); } querydsl과 jpa같이 사용하고싶어서 셋팅한거 입니다.
-
미해결한 입 크기로 잘라먹는 Next.js(v15)
백엔드 서버 수행시 prisma engine을 설치할수가 없습니다.
사내 환경에서 외부 인터넷은 프록시를 통해 접속 가능합니다.백엔드 서버 구축시 npm install 수행시 prisma engine을 다운로드 받을수 없다는 메시지가 나옵니다. Downloading Prisma engines for Node-API for windows [ ] 0%Error: request to https://binaries.prisma.sh/all_commits/acc0b9dd43eb689cbd20c9470515d719db10d0b0/windows/schema-engine.exe.sha256 failed, reason: 엔진을 수작업으로 다운로드 받아 참조 할수 있는 방법이 없을까요
-
해결됨Git & GitHub, 원리부터 차근차근 - 근본깃 [완성편]
cd myproject
taehyeonkoo@TaeHyeonui-MacBookPro ~ % cd myProjectcd: no such file or directory: myProjecttaehyeonkoo@TaeHyeonui-MacBookPro ~ % cd ~/데스크탑cd: no such file or directory: /Users/taehyeonkoo/데스크탑taehyeonkoo@TaeHyeonui-MacBookPro ~ % cd ~/Desktoptaehyeonkoo@TaeHyeonui-MacBookPro Desktop % cd myprojectcd: no such file or directory: myprojecttaehyeonkoo@TaeHyeonui-MacBookPro Desktop % cd projectstaehyeonkoo@TaeHyeonui-MacBookPro projects % cd myProjecttaehyeonkoo@TaeHyeonui-MacBookPro myProject % 처음 명령어 cd myProject 를 치면 바로 안나오는데 정상인가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품 엔티티 관련하여 질문 드립니다.
제공 해주신 코드에서 ITEM에는 왜 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); 이거에 해당하는 코드가 없을까요?@OneToMany(mappedBy = "item", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); 이런 코드가 있어야 1대 다 관계에서 매핑과 주인관계를 결정해줄 수 있지 않나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@transactional repository or service
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@transactional을 repository가 아닌 service에 다는 이유가 궁금합니다. transaction 단위가 단순히 db와 왔다갔다하는 것이 아니라, 하나의 비지니스 로직을 의미하기 때문일까요(transaction의 개념을 잘 몰라서 헷갈리는 듯 합니다.)
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
이벤트 처리 부분 강의 실습
강의들으면서 @keyup 이벤트가 강의 내용처럼 안먹네요. keyup이벤트는 키가 눌려졌다가 올라간뒤 실행하는 걸로 아는데요. 이상하게 실행이 안됩니다. 백스페이스나 엔터키는 또 먹습니다. 이벤트가 먼가 다르게 동작되는 느낌입니다.콘솔 상엔 에러는 없고, 그냥 abcd같은 일반키는 keyup이벤트가 안먹네요.이유가 뭘까요?
-
미해결
보통 검증이 필요한 대상은 요구사항으로 전달되나요 ?
예를 들어 "사용자가 서류를 제출하면 그에 맞는 금액을 통장으로 넣어준다" 라는 기능이 있을 때, 사용자가 서류를 제출했는지 확인 금액은 최소 1000원 이상이어야 한다. 사용자 명의의 통장이 존재하는지 확인. 등과 같은 검증 대상은 회사에선 요구사항으로 전달되나요? 프로젝트 진행할 때 개인적으로 어려운 부분이이런 검증 대상을 추출하는 것과 에러 메시지 작성하는 부분이거든요 ㅠㅠ 혹시 보편적으로 통용되는 검증 종류가 (ex 돈을 다룬다면 ~~는 꼭 검증해야한다) 따로 있는지,아니면 그냥 회사 다니면서 경험치 쌓으면서 배우면 되는건지 궁금합니다 ㅠ ㅠ
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
27분에서 헤더 파일에서 #include 이유
헤더에서 상호 참조 또는 컴파일이 오래걸리는 것을 방지하려고 class로 전방선언하여 작업하는 것으로 이해하고 따라하고있는데, 여기서는 헤더에서 클래스를 include하여 작업하는 이유는 무엇일까요?