묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테이블 설계 관련 질문
프론트 엔드에서 전체 category를 조회해서, 화면에 카테고리를 선택할수 있도록 출력해주는 화면이 있고 유저가 게시글을 등록한다고 한다면 --- 1. 아래와 같이 Category 테이블에 모든 카테고리를 저장해 (init), 2. 이 리스트를 전달해주고, (미리 카테고리들은 정해져 있다고 할때, 추가도 할수 있겠지만) 3. user가 게시글을 등록할때 client가 입력한 category를 category table에서 찾아오고 4. 그 값을 기반으로 post와 postCategory에 저장해주는 방식이 되어야 하는거 같은데 (강의들중 어디에서 질문하는게 좋을지 약간 애매해서 여기에 글 올립니다.) ------ 이렇게 하는 방식이 맞을까요? 뭔가 동작 하게끔 할수 는 있는데 올바른 방법같지 않아서 영한님 다른강의들도 들어보면서 같이 몇일째 고민중인데 찜찜하고 명확하게 확신이 안섭니다. 카테고리 목록은 initService를 하나 만들어서 미리 저장해두었습니다. (강의에서 하신 initDb처럼) 답변주시면 감사드리겠습니다. 몇일째 해결이 안되요 ㅠㅠ post테이블의 CATEGORY_TAG는 삭제 예정입니다 public class Post { @Id @GeneratedValue @Column(name = "post_id") private Long id; private String title; @Lob private String desc; private int price; @Enumerated(EnumType.STRING) private Status status; @ManyToOne @JoinColumn(name = "account_id") private Account seller; @OneToOne(cascade = CascadeType.ALL) @JoinColumn(name = "post_category_id") private PostCategory postCategory; // old @Enumerated(EnumType.STRING) private CategoryTag categoryTag; /*@OneToOne @JoinColumn(name = "category_id") private Category category;*/ public Post(String title, Account seller){ this.title = title; this.seller = seller; status = Status.NEW; } // old public Post(String title, String desc, int price, CategoryTag categoryTag, Account seller){ this.title = title; this.desc = desc; this.price = price;// @Converter this.categoryTag = categoryTag; this.seller = seller; status = Status.NEW; seller.addPost(this); } public Post(String title, String desc, int price, Account seller){ this.title = title; this.desc = desc; this.price = price;// @Converter this.postCategory = postCategory; this.seller = seller; status = Status.NEW; seller.addPost(this); } //== 연관관계 메서드 ==/ public void setSeller(Account seller) { this.seller = seller; seller.addPost(this); } //== 바즈니스 로직 ==// // old public static Post post(String title, Account seller, CategoryTag categoryTag){ Post post = new Post(title, seller); post.setCategoryTag(categoryTag); return post; } public void setPostCategory(PostCategory postCategory){ this.postCategory = postCategory; postCategory.setPost(this); }} @Entity@Setter@Getterpublic class PostCategory { @Id @GeneratedValue @Column(name = "post_category_id") private Long id; @OneToOne(mappedBy = "postCategory") private Post post; @OneToOne @JoinColumn(name = "category_id") private Category category;} @Entity@Getter@Setter@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Category { @Id @GeneratedValue @Column(name= "category_id") private Long id; @Enumerated(EnumType.STRING) @Column(unique = true) private CategoryTag categoryTag; public Category(CategoryTag categoryTag){ this.categoryTag = categoryTag; }} @PostMapping("/new2")public PostResponseDto postV2(@RequestBody PostRequestDto postRequestDto, @ApiIgnore HttpSession session){ Account account = getSessionCheckedAccount(session); Post post = new Post(postRequestDto.getTitle(), postRequestDto.getDesc(), postRequestDto.getPrice(), account); Category category = categoryJpaRepository.findByCategoryTag(postRequestDto.getCategoryTag()); PostCategory postCategory = new PostCategory(); postCategory.setCategory(category); post.setPostCategory(postCategory); Long postId = postService.post(post); return new PostResponseDto(postId);}
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
front 배포 후 사이트 연결할 수 없음 문제 질문드립니다.
잘 따라와서 입력을 한거 같은데 사이트 연결 할 수 없음 문제가 나와서 질문드립니다. 해당 질문은 프론트 서버 배포하기 강좌를 보다가 나온 문제입니다. 제가 했던 절차는 이러합니다. 1. local 컴퓨터 front에서 npm i pm2 설치 2. local 컴퓨터 front에서 saga/index.js 쪽 backUrl을 전역적으로 사용하기 위해서 config 만들고 import 설정 3. local 컴퓨터 front에서 localhost3065로 돌아가는 back을 backUrl로 전부 설정 4. local 컴퓨터 front에서 package.json 설정("start": "cross-env NODE_ENV=production next start -p 80") 4. local 컴퓨터 front git romote 후 우분투 front에서 git pull 5. 우분투 front에서 npm build ("build": "cross-env NODE_ENV=production ANALYZE=true next build",) 6. 우분투 front에서 sudo npx pm2 start npm -- start && sudo npx pm2 monit로 실행 7. aws front ip 로 브라우저 접속 -> 사이트 연결할 수 없음 이렇게 진행하였는데... 왜 안되고 있는지 잘 모르겠습니다 ㅠㅠ 커뮤니티 게시판에서 보안그룹 관련해서 나온 글이 있길래 초기 ec2 인스턴스 생성시에 http, https 설정할때 제 ip로 설정 해놔서 Anywhere 설정으로 변경 후 다시 실행을 했거든요.. 그래도 무반응 입니다. 혼자 해결 해보려 찾아보는데 키워드 조차 나오지 않다 보니 찾기가 매우 힘드네요. 답변주시면 감사하겠습니다. 아래 스크린샷 첨부합니다. front/package.json aws 보안 그룹 - ssh는 제 ip로 되어 있고 보안 그룹 이름은 ec2 인스턴스와 일치합니다.. build log - front에서 about.js 제외하고 빌드했습니다. front 실행
-
미해결홍정모의 따라하며 배우는 C++
이니셜라이저 리스트
int arr[3]={1,2,3} 이런건 이해가 갑니다. auto i1 = {10,20,30} 이나 IntArray int_array {1,2,3,4,5} 이런건 처음보는 경우라 무슨 말인지 초장부터 이해가 안갑니다 ㅠㅠ #include <iostream> #include <cassert> #include <initializer_list> using namespace std; class IntArray{ private: unsigned m_length=0; int *m_data=nullptr; public: IntArray(unsigned length):m_length(length){ m_data=new int[m_length]; } IntArray(const std::initializer_list<int> &list):IntArray(list.size()){ int count=0; for(auto &e : list){ m_data[count]=e; ++count; } } }; int main(int argc, const char * argv[]) { int arr1[5]={1,2,3,4,5}; int *arr2=new int[5]{1,2,3,4,5}; auto il={10,20,30};//initializer list IntArray int_array{1,2,3,4,5}; cout<<int_array<<endl; return 0; }
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
upload.single("image")
저기 중간에 들어가는 부분이 어떻게 처리되는지 그림이 있으면 좋겠네요.
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
$ 표시는 왜 쓰는걸까요?
$ 표시는 왜 쓰는걸까요?
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
질문드립니다.
객체 리터럴의 속성 이름은 문자열이어야 하지만 그냥 숫자 2를 속성 이름으로 해도 오류가 나지 않고 잘 작동하는데, 그렇다면 객체 리터럴의 속성 이름을 무조건 문자열로 할 필요는 없는 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
.findAny(); 입력후 에러
@Overridepublic Optional<Member> findByName(String name) { store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); // 이거 오류왜나지} 입력후 missing return statement 에러가 납니다. findAny() 함수가 애초에 null일때 처리하는 함수라고 들었는데 return 타입이 missing이라니 뭐가 문제인지 모르겠습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
강의 정리 포스팅 관련 문의
열심히 들으며 part3개를 해치우고 어느덧 part4에 왔는데요,, 복습겸 수업에서 중요했던 것들을 다시 정리해서 티스토리에 올리려고 합니다. 이미 몇 개는 미처 생각을 못하고 올려버렸습니다. 앞으로도 조금씩 적어서 올리려고 하는데요, 그 전에 먼저 허락을 받으려 합니다. 코드의 경우에는 거의 올리지 않으려 하고, 줄 글 정도로 해당 챕터의 내용을 정리하려 합니다. 글을 올려도 될까요? 안된다고 하신다면 티스토리에 현재 올라간 내용들은 보는 즉시 삭제하도록 하겠습니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
엔티티 관련 질문 드립니다.
JPA 강의까지 수강한 뒤에 활용편을 들으면서 DB를 적용해보면서 실습하고 있습니다. 엔티티에서는 setter를 지양하라고 하셔서 setter 없이 사용하고 있습니다. 그런데 @ModelAttribute로 Member 객체를 받으려니 setter가 없어서 post로 들어온 객체에 값이 모두 null로 채워지게 됩니다. 이런 경우에는 모두 @RequestBody로 받아서 처리하시나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Regions 필드의 값이 추가되는 동작방식이 궁금합니다!
강의를 통해 열심히 배우고 있는 학생입니다 이번에 여쭤보고싶은게 있어 질문했습니다. 다중 체크박스에서 서울과 부산을 선택해서 상품 수정시 폼 데이터 전송 방식까지 확인 했습니다. 또한Item 클래스에서 regions 필드는 List 타입으로 선언되어 있으며 @Data 애노테이션으로 롬복이 getter sertter 등을 자동 생성해준다고 학습했습니다. 여기서 궁금증이 생겼습니다. 컨트롤러에서 @ModelAttribute를 사용할 시 Item 타입의 객체를 생성하고 객체의 프로퍼티까지 셋팅해주며 그 방식이 폼 데이터로 넘어온 name 값으로 setter를 호출한다고 알고있는데 list 타입으로 선언한 regions의 setter호출시 자동으로 값을 넣어주는 기능을 하는건가요?? Item 객체의 regions 필드에 Seoul, Busan과 같은 값이 어떻게 추가 되었는지 궁금합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReadLock 얻는 과정 질문
안녕하세요 ReadLock잡을 때, 동일한 쓰레드가 소유하고 있으면 무조건 성공 부분 질문 있습니다. void Lock::ReadLock() { // 동일한 쓰레드가 소유하고 있다면 무조건 성공. const uint32 lockThreadId = (_lockFlag.load() & WRITE_THREAD_MASK) >> 16; /*-------------------------------------------------------------------------- 이 부분에서 WriteUnlock된다면 동일한 쓰레드가 소유하지 않았는데 아래로직에 진입하여 1더하고 return 되지 않을까요? --------------------------------------------------------------------------*/ if (LThreadId == lockThreadId) { _lockFlag.fetch_add(1); return; } ... }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
강의 수강하면서 정리한 내용 블로그에 올려도 되는지 문의 드립니다!
안녕하세요! 스프링 입문 강의 수강하고 좋아서 실전으로 넘어와서 계속 배우고 있습니다. 혹시 강의 보면서 개인적으로 정리한 내용을 블로그에 올려도 되는지 문의 드립니다. 감사합니다!
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
Configuration 질문
안녕하세요 8:41에 RestfulWebServiceApplication이라고 Configuration이 이미 지정되어 있으신데 저는 Add Configuration이 나와서 새로운 설정을 추가하라고 나옵니다. 혹시 이 부분 어떻게 해결해야 하는지 알 수 있을까요? intellij는 community 버전을 사용하고 있습니다. 감사합니다
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
안녕하세요 thymeleaf 에러 질문입니다
안녕하세요 위와 같이 2021-09-01 21:49:03.469 WARN 27854 --- [ main] ion$DefaultTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration) 이런 오류가 나는데 뭐때문일까요? start.spring.io 에서 셋팅 그대로 다운받아서 실행했는데 저렇게 나옵니다..
-
미해결프론트엔드 개발환경의 이해와 실습 (webpack, babel, eslint..)
webpack.config.js 이 없는 프로젝트
안녕하세요 강사님 강의 정말 잘듣고있습니다 너무 유익해요 :)) 궁금한 점이 있는데, webpack.config.js 에서 기본적으로 mode, entry, output 을 설정해주신다고 하셨습니다. 그런데 cra 로 생성한 프로젝트를 보면 webpack.config.js 파일이 따로 ㅇ존재하지 않더라구요, 이런 경우엔 webpack.config.js 밖의 다른 곳에서 webpack 에 대한 설정을 해주는 것인가요?.?
-
미해결Nuxt.js 시작하기
뭐하나 여쭤볼려고 질문드립니다.!!
혹시 nuxt나 vue에서 일반 js에서 plugin 형태로 ex) $store ,$route 형태로 쓸수있는방법없을까요?? import 형태로 store를 불러오거나 $형태로 불러오면 계속 undefined 뜨네요 ㅠㅠ 찾아봐도 없길래 짊문드립니다. 감사합니다.
-
미해결스프링 시큐리티
제가 맞게 이해한것인지 궁금합니다.
authenticationmanager는 사용자가 입력한 authentication객체를 인증할수 있는 autheticationprovider를 찾아주고 해당 provider는 userdetailsservice가 반환한 userdetail를 바탕으로 비번일치유무로 인증을 하고 일치한다면 authenticationmanager는 autheticationprovider가 반환한 authentication(principal 변수에 userdetail를 담음)를 getmaapin 메서드에 principal매개변수로 넘겨주는것이 맞나요?
-
미해결하울의 안드로이드 인스타그램 클론 만들기
mainfest 오류
Manifest merger failed with multiple errors, see logs 이러한 오류가 떠서 실행이 안됩니다 ㅜㅜ
-
미해결mongoDB 기초부터 실무까지(feat. Node.js)
질문 있습니다^^
comment post api 수정하기 3:30 부분에서 'user.username': ValidatorError: Path `user.username` is required. 'user._id': ValidatorError: Path `user._id` is required. 이런 에라가 뜹니다.난감합니다^^
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
404 오류는 왜 뜨는걸까요?
현재는 navigation이 6버전이 나와있어서 이를 따랐는데 404오류가 나오네요 ㅠㅠ 어떻게 해결해야할까요?.. 그리고 6버전이 나와서 5.x 버전은 적용이 안되는 것 같은데 제가 잘못하고 있는걸까요?.. 맞다면 6버전에는 ~handler Import하는 구문이 없습니다..