묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 데이터 JPA
게시판에서 삭제된 댓글을 보여주기 위해 Spring Data JPA에서는 어떻게 접근해야 할까요?
상황 설명기본적인 게시판을 만들고 있어요.해당 게시판에는 게시물를 달 수 있고 해당 게시물에는 댓글을 달 수 있어요.댓글과 관련한 요구사항들은 다음과 같습니다.댓글 Create, Update, Delete각 게시물은 몇 개의 댓글이 달렸는지 확인이 가능하다.게시판에서는 전체 댓글이 몇 개가 달렸는지 확인이 가능하다.게시물에 달려 있는 모든 댓글들을 확인할 수 있다. 다만, 삭제된 댓글의 경우 "삭제된 댓글입니다" 라는 메세지로 보여준다. 내 접근 방법(Where 어노테이션을 사용)우선은 4번 조건 때문에, 그리고 실무에서 관리를 위해 데이터를 잘 삭제하지 않는다는 걸 근거로 Soft-Delete를 적용했습니다.그리고 Comment 엔티티를 아래와 같이 작성했습니다.@Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @SQLDelete(sql = "UPDATE Comment SET deleted = true where comment_id = ?") @Where(clause = "deleted = false") public class Comment extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "comment_id") private Long id; private boolean deleted; ... 생략 ... } Comment 엔티티를 조회하는 대부분의 요청(1개 제외)은 deleted 필드가 false인걸 찾아와야 합니다. 그래서 디폴트 속성으로 deleted=false를 적용하면 편하겠다고 생각하여 Where 어노테이션을 사용했는데요. 문제점이 방식의 문제는 4번 요구사항을 구현할 수 없다는 것입니다.Spring Data JPA의 기본 메서드는 물론이고, JPQL, QueryDsl 을 사용한 모든 Comment 조회 쿼리에도 "deleted=false" 속성이 기본으로 달라붙어 deleted가 true인 Comment를 가져올 수 없습니다.(확실하지는 않지만, Native Query를 사용하면 하이버네이트 구현체의 영향을 안받고 제가 원하는 기능을 구현할 수 있을 거 같습니다. 그런데 Native Query를 쓰는게 최선일까 자꾸 꺼려지더라구요.) 임시 방안저는 어쩔 수 없이 Where 어노테이션을 제거하고, Comment에 관련한 모든 조회 쿼리를 JPQL로 만들어줬습니다.하지만 고작 한 개의 메서드에서 삭제된 메서드를 보여주기 위해 전체 Comment 조회 메서드를 변경하는 게 마음에 들지 않습니다. 관리를 어렵게 만든다는 생각이 들어요.실제로 저는 "게시판에서는 전체 댓글이 몇 개가 달렸는지 확인이 가능하다." 요구사항을 구현할 때, where deleted=false 조건을 붙이는 걸 깜빡해서 삭제된 댓글들의 개수까지 전부 보여줬습니다. 이러한 상황에서는 코드를 어떻게 작성하는 게 좋을까 계속 고민을 하고 있는데요,,, 함께 고민해주실 수 있을까 하여 이렇게 질문을 남깁니다. 감사합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
컨트롤러에서 html 파일로 바로가기가 안됨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.인텔리제이 Ultimate를 구매한 상태로 사용 중인데요. 영한님 강의 내에서는 (cmd + 클릭)으로 해당 html 파일로 바로가기가 되는데, 저는 안되네요. 구글링 해보아도 명확한 답을 얻지는 못해서 별도 설정 방법이 있는건지 여쭤봅니다!
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
https 적용 후에 이미지 주소에서 에러가 발생합니다.
http일 때는 문제가 없었는데 https 적용 후에 문제가 발생합니다.강의에서 알려주신 대로 하면 에러가 나와서 제로초 님 블로그 보고 cerbot이랑 nginx 설치했습니다.아래 코드만 강의와 다르게 했습니다.sudo snap install certbot --classic sudo apt-get install nginxsudo certbot --nginxhttps://www.zerocho.com/category/NodeJS/post/5ef450a5701d8a001f84baeb 에러 내용은 다음과 같습니다.https 적용 전https://abc.s3.ap-northeast-2.amazonaws.com/original/1705127046450_china.jpg https 적용 후https://abc/https:/abc.s3.ap-northeast-2.amazonaws.com/original/1705127046450_china.jpghttp://abc/ 이 부분을 없애는 방법을 알고 싶습니다. nginx.conf는 아래와 같습니다.server { // 실제로는 구매한 도메인 넣었습니다. server_name abc; location / { proxy_set_header HOST $host; proxy_pass http://127.0.0.1:3000/; proxy_redirect off; } }server { // 실제로는 구매한 도메인 넣었습니다. server_name api.abc; location / { proxy_set_header HOST $host; proxy_pass http://127.0.0.1:3000/; proxy_redirect off; } }
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
9-6. 아이콘 만들기 _ 해상도를 고려한 아이콘 Export하기의 내용에서 선을 면 <-> 면을 선으로 바꿀 수 있나요?
9-6. 아이콘 만들기 _ 해상도를 고려한 아이콘 Export하기의 내용에서 선을 면으로 바꾸면 수정시 원본이 없는 건데, 바꾼 면을 다시 선으로 바꿀 수 있나요? 있다면 방법을 알려주시면 감사하겠습니다!혹은 백업해놓고 바꿔 사용하는 게 더 효율적인지도 궁금합니다.
-
미해결FreeRTOS 프로그래밍
멀티태스킹
안녕하세요 강사님! 해당 강의에서 LCD펌웨어를 멀티태스킹가능하도록 만드는 방법에 대해서 공부하였습니다.만약에 모터를 제어하는 펌웨어를 멀티태스킹 가능하게 task로 만들면 해당 task가 멀티태스킹 되면서 PWM duty cycle이 낮아질 수도 있나요??아니면 pwm 장치는 cpu와 독립적으로 동작해서 다른 task에게 선점당하여도 똑같은 출력을 유지하는지 궁금합니다!
-
해결됨Flutter로 SNS 앱 만들기
Firebase StreamBuilder 사용은 왜 안 하나요?
댓글 불러오는 과정을 보고 있는데, 지금까지 각 모델(feed, comment) 전부 Firebase에서 전체 document 받아와서 list로 변환 후, update 하고나면 Firebase에 업로드하는데 그와 동시에 screen에 반영하기 위해 새로 get하여 list를 만들어서 표시해주는 것 같습니다. Firebase StreamBuilder를 사용하면 실시간으로 모든 변화들이 바로 업데이트 되어서 기존에 많이 썼는데, 혹시 이렇게 하지 않는 이유가 있을까요? (데이터 통신이 불필요하게 많이 일어나서 트래픽/요금 등의 문제가 있다든지 하는 현실적인 이유가 있는지 궁금했습니다)
-
미해결ESXi 가상 인프라 구축과 보안 솔루션을 활용한 이상징후 탐지 모니터링
rufus-3.13p.exe 파일은 어디에 있나요??
하드웨어 바로 위에 workstation 사용 없이 설치하려고 실습자료실 가서 rufus관련 파일들 받으려는데 ini이나 압축파일은 있는데 3.13p.exe 실행 파일이 없어서 문의드립니다. usb에 옮겨서 실행하는 강의 듣고 따라하려다 위에 실행파일이 없어서 남깁니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
FTA 파일 시스템에 대한 질문입니다.
안녕하세요 강사님!좋은 강의 잘 듣고 있습니다.이번에 마지막 강의인 파일 시스템을 수강하던 도중 질문이 생겨서 글을 작성하게 되었습니다.FTA 파일 시스템의 경우 기존 연결 할당 방식의 단점들을 해결한다는 말씀을 해 주셨습니다.연결 할당 방식의 문제로는 반드시 처음부터 접근을 해야 한다는 것블록에 오류가 발생하였을 때, 추후의 블록을 읽을 수 없다는 점입니다.그렇다면 FTA가 Table을 도입함에 따라 위 2가지 문제를 해결한 방식이 다음과 같은지 여쭤보고 싶습니다.Table을 참조하여 특정 파일의 중간 블록부터 읽을 수 있기 때문에, 첫번째 문제는 해결했다고 볼 수있다.블록에 다음 블록의 정보를 저장하지 않기 때문에, Table의 정보만 유효하다면, 다음 블록의 정보를 읽는데에는 문제가 없다. 좋은 강의 만들어 주셔서 감사합니다.
-
미해결홍정모의 따라하며 배우는 C언어
free의 의미?
안녕하세요19분 30초 쯤에 동적할당으로 할당받은 메모리를 free를 통해 반납하는 내용인데요 printf("Before free %p\n", ptr); free(ptr); // no action occurs when ptr is NULL printf("After free %p\n", ptr);위 코드를 실행했을 때 free하기 전 동적할당받은 메모리를 가리키는 포인터 주소와free한 후의 포인터 주소는 여전히 같음이 나옵니다. 그렇다면 free로 해제를 해도 전에 할당받았던 메모리에 대한 주소를 포인터ptr이 여전히 가지고 있다는 것인데이렇게 된다면 free가 무색하게 계속 그 메모리에 접근 할 수 있는 거 아닌가요? 물론 free를 함으로써 그 메모리에 대해 할당하고 회수할 컨트롤 권한? 은 os가 다시 가져간다는 것은 이해했지만약간 명시적인 측면도 있는 건지 궁금합니다.
-
해결됨[R을 R려줘] R 기초다지기
사용자 정의 함수
사용자 정의 함수를 생성할 때 중괄호 위치가 중요한가요? return과 같은 줄에 사용하면 에러가 뜨고 밑줄에 사용하면 정상적으로 작동하는데 그 이유가 무엇인가요?
-
해결됨김영한의 실전 자바 - 기본편
메서드 관련 질문
현재 상속 파트를 공부하다가 든 의문증입니다.상위 클래스에서 void 타입의 메서드명 : call() { System.out.println("이름 : " +name);}하위 클래스에서 void 타입 메서드명 : GetInfo()GetInfo(){out.println("호출명 : " + call()); [해당 부분이 컴파일 오류가 발생하여서 상위 클래스 타입을 String으로 바꾸니 컴파일 오류도 없었고 원하는대로 출력이 되었습니다.]그래서 생각을 좀 해봤는데 void는 반환값이 없는 메서드이고 GetInfo()에 출력문을 만나면 이중출력문이 되어서 컴파일 오류가 난 것이라고 생각했는데 맞나요..?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
안녕하세요 강의자료 부탁드립니다~!
kangmh1021@gmail.com 감사합니다~!
-
해결됨Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
vuejs 중급 깃허브 권한 요청
인프런 아이디: tastybusango@gmail.com인프런 이메일: tastybusango@gmail.com깃허브 아이디: sonyeonghwa@gmail.com깃허브 username: sonyeonghwa
-
해결됨손에 익는 Next.js - 공식 문서 훑어보기
클라이언트 컴포넌트는 SSG? SSR?
이전 질문글에 답글을 남겼는데, 확인하기 힘드실 것 같아 질문을 새로 작성합니다. 클라이언트 컴포넌트는 기존 Next12처럼 Pre-Rendering으로 제공된다고 알고 있는데, 이는 기본적으로 SSG인가요? 아니면 SSR인가요? 또 둘 중에 선택이 가능한지 궁금합니다!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
강의 자료에 오자가 있습니다. 137쪽
섹션 4. HTTP 메서드HTTP API를 만들어보자 강의자료 137쪽행위을(X) -> 행위를(O)
-
해결됨스프링 부트 - 핵심 원리와 활용
현재 SpringBoot 3.2.1 부터 @ConfigurationProperties 를 사용한 설정값 바인딩에 이슈가 있는것 같습니다.
안녕하세요! 질문 내용은 제목과 같습니다. 스프링부트 3.2.1 부터 @ConfigurationProperties 가 동작하지 않는것 같습니다. 확실하지 않지만 스텍오버플로우에도 비슷한 이슈가 올라온 상태인것 같습니다. https://stackoverflow.com/questions/77703018/spring-boot-3-2-1-properties-binding 스프링부트 3.2.1 에서 저는 아래와 같은 익셉션이 발생합니다,plugins { id 'java' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4' }token: expired: 20s secret-key: test-key@ToString @AllArgsConstructor @ConfigurationProperties(prefix = "token") public class TokenProperties { private Duration expired; private String secretKey; }@Slf4j @RequiredArgsConstructor @Component @EnableConfigurationProperties(TokenProperties.class) public class TokenConfiguration { private final TokenProperties tokenProperties; @PostConstruct void init() { log.info("tokenProperties = {}", tokenProperties); } }*************************** APPLICATION FAILED TO START *************************** Description: Failed to bind properties under 'token' to revi1337.configurationpropertiesdemo.property.TokenProperties: Reason: java.lang.IllegalStateException: Unable to create instance for revi1337.configurationpropertiesdemo.property.TokenProperties This may be due to missing parameter name information Action: Update your application's configuration이 상태에서 스프링 버전을 3.1.5 으로 다운그레이드하면 정상동작합니다.plugins { id 'java' id 'org.springframework.boot' version '3.1.5' id 'io.spring.dependency-management' version '1.1.4' } 현재 스프링 3.2.1 에서 뭐 바뀐게 있을까요? 제가 무언가를 잘못했을 확률이 대단히 높지만 제가 찾아볼때는 명확한 해결방법이 3.1.5 로 다운그레이드하는 방법밖에 나오지가 않네요.. 확인좀 부탁드리곘습니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.save 메소드를 보면 Model을 파라미터로 받고있는데요 앞서 MVC를 직접 구현하는 단계에서는 Map<String,Object> model을 FrontController에 구현해서 받았었는데, 어노테이션 기반에서도 Model이 Dispatcher 서블릿에 구현되어 있는건가요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
"에셋을 로딩한다"의 의미
8강 소프트 레퍼런싱에 대해서 강의를 듣다가 에셋이 로딩되고 객체에 할당되는 과정에 궁금증이 생겼습니다. 제 생각은 다음과 같습니다.에셋이 로딩되면 에셋의 데이터를 가지고 객체를 만든다. 그리고 해당 에셋을 사용하는 클래스가 인스턴싱될 때 로딩된 에셋(객체화된 에셋)을 복사해서 추가한다.만약 같은 에셋을 사용하는 클래스가 두 개 이상이라면, 로딩된 에셋을 두 번 복사하게 된다.즉, 에셋을 로딩한다는 것은 복사를 위한 원본 객체를 생성하는 것을 의미한다. 제 생각이 맞을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
stockQuantity 와 author, isbn 값이 저장 되지 않습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 서브밋 할 시에 컨트롤러 디버깅을 해보면 item에 잘 담기고 있습니다. 하지만 레퍼지토리에서 em.persist를 할 때에 로그를 보면 값을 포함하지 stockquantity는 0이고 author, isbn은 null값으로 찍혀 저장 되는 상태입니다 ㅠㅠㅠ 어떤 설정을 빼먹은 것인지 감이 잡히지 않습니다..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
배열 대신 벡터 사용 해도 괜찮나요?
int cnt[26]; 대신에 vector <int> answer (26); 를 사용했는데어떤 문제 이든지 배열 대신 벡터를 사용 했을 때 문제될 여지가 있을까요?