묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결React로 NodeBird SNS 만들기
오늘 하루 동안 쿠키/세션에 대해서 있었던 문제들입니다..
d
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
유효성 검사 질문
안녕하세요 강사님 다름이 아니라 기존에 프로젝트에서 spring 프레임워크, jsp, 자바스크립트 + jquery 기반으로 실무에서 웹개발을 했는데 사실상 스프링을 사용하고 있다고 말하기 민망할 정도로 기능을 거의 사용하지 못했었습니다. 그래서 이부분도 새로 공부중입니다ㅠㅠ 강의를 듣다보니 @Vaild나 NotEmpty같은 어노테이션도 알게 되고 BindingResult 같은 클래스 패키지도 알게되면서 뭔가 새로태어나는 기분이 들고 있습니다. 이번 강의 끝에 유효성 검사부분을 배우면서 생각이 드는 것이 저는 보통 유효성 검사를 할 때 자바스크립트 jquery를 사용해서 클라이언트단에서 유효성 검사를 하고 중요한 데이터의 경우 백단에서 DB체크(?)를 한번 더 해주는 식으로 개발했었는데요 스프링+타임리프를 조합하니 클라이언트단에서도 UX조작이 가능한 것 같았습니다. 유효성 검사의 어노테이션들을 적절하게 사용한다면 더이상 클라이언트단에서 자바스크립트를 통해 유효성 검사 부분이 불필요하게 되는 건가 조심스럽게 여쭤봅니다.
-
미해결실전! 웹사이트제작! Step By Step! _Basic (한화캐미컬_반응형웹)
포트폴리오 보충을 위해 강의와 함께 병행하고 있는 학생이에요!
별거 아닌 질문이긴 한데 반응형(모바일부분) 코딩시 이미지 사이즈를 height: auto; 로 해주지 않고,(about 부분 코딩 중입니다.) 높이를 500px;로 주는 이유가 따로 있나요? 공부한다고 이리저리 다른 사이트 소스도 봐가면서 하는데, 선생님이 하신 것처럼 이미지 높이를 따로 설정해둔 사이트가 있고, 높이를 auto로 설정해둔 사이트도 있어서 혼란이 옵니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
failed to lazily initialize a collection of role 오류 관련 문의
안녕하세요. 항상 친절하고 정확한 답변 감사합니다. 지금 작업하다가 발생한 오류로 헤매고 있어서 질문드립니다. 소셜로그인으로 로그인 시 기존 회원정보가 없으면 생성하고 나서 소셜로그인 정보 생성하고, 기존 회원정보 있으면 해당 회원정보로 소셜로그인 정보를 생성하려고 합니다. (MemberService.java) 기존에 없는 회원일때 회원정보 생성하고 나서 소셜로그인 정보 생성하는건 잘 되는데, 이미 있는 경우에 기존회원정보를 member에 담아놓고 그걸로 소셜로그인 정보 생성할때 아래와 같은 오류가 발생합니다. org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: kr.soleo.mall.base.domain.member.entity.Member.memberSocialProfiles, could not initialize proxy - no ... 수업들은거 잘 생각해서 구현했다고 생각했는데, 무슨 이유인지 모르겠네요. ㅠㅠ Member.java @Entity@Table(name = "member")@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)@ToString(of = {"id", "email", "username", "age"})public class Member extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "member_id") private Long id; private String email; private String password; private String username; private int age; @OneToMany(mappedBy = "member", cascade = CascadeType.ALL) List<MemberAuth> memberAuths = new ArrayList<>(); @OneToMany(mappedBy = "member", cascade = CascadeType.ALL) List<MemberSocialProfile> memberSocialProfiles = new ArrayList<>(); @OneToMany(mappedBy = "member", cascade = CascadeType.ALL) List<Board> boards = new ArrayList<>(); @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") private Team team; public Member(String username) { this(username, 0); } public Member(String username, int age) { this(username, age, null); } public Member(String username, int age, Team team) { this.username = username; this.age = age; if (team != null) { changeTeam(team); } } //연관관계 메쏘드 public void changeTeam(Team team) { this.team = team; team.getMembers().add(this); } @Builder public Member(String email, String password, String username, int age, Team team) { this.email = email; this.password = password; this.username = username; this.age = age; if (team != null) { changeTeam(team); } }} MemberSocialProfile.java @Entity@Table(name = "member_social_profile")@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)public class MemberSocialProfile extends BaseTimeEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "member_social_profile_id") private Long id; private String identifier; //소셜로그인시 id값 private String photourl; //소셜로그인시 프사이미지 URL private String email; @Enumerated(EnumType.STRING) private SocialType socialType; //facebook, kakao, google, naver @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; //연관관계 메쏘드 public void changeMember(Member member) { this.member = member; member.getMemberSocialProfiles().add(this); } @Builder public MemberSocialProfile(SocialType socialType, String identifier, String photourl, String email, Member member) { this.socialType = socialType; this.identifier = identifier; this.photourl = photourl; this.email = email; if (member != null) { changeMember(member); } }} MemberService.java @Service//@RequiredArgsConstructor@Component@Configurablepublic class MemberService implements UserDetailsService { @Autowired private MemberRepository memberRepository; @Autowired private MemberAuthRepository memberAuthRepository; @Autowired private MemberSocialProfilesRepository memberSocialProfilesRepository; @Autowired private PasswordEncoder passwordEncoder; @Transactional public void createSocialAccount(MemberDto account) throws Exception { Member member = null; if (memberRepository.existsByEmail(account.getEmail())) { //1) member에 해당 이메일로 회원정보가 있으면 그 정보 이용해서 소셜정보생성 member = memberRepository.findByEmail(account.getEmail()); } else { //2) member에 해당 이메일로 회원정보가 없으면 회원정보 생성하고 소셜정보 생성 account.setPassword(passwordEncoder.encode(account.getPassword())); member = Member.builder() .email(account.getEmail()) .password(account.getPassword()) .username(account.getUsername()) .build(); memberRepository.saveAndFlush(member); memberAuthRepository.saveAndFlush( MemberAuth.builder() .authType(AuthType.USER) .member(member) .build() ); } // 1) 조건인 경우 오류발생, 2) 조건인 경우 정상 저장 완료 memberSocialProfilesRepository.saveAndFlush( MemberSocialProfile.builder() .identifier(account.getIdentifier()) .photourl(account.getPhotourl()) .email(account.getEmail()) .socialType(account.getSocialType()) .member(member) .build() ); }}
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 챗봇 사이트 만들기
처음 시작하는데
Git clone해서 하니깐 코드가 다 입력되어있어서요. 어느 부분을 지우고 시작하는게 맞는지 알고 싶습니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
17:10 부근에 if(room.Prev != null)부분 질문입니다.
위에서 Tail인 경우와 Head인 경우에 대해서 체크를 해주었는데 그 경우가 아닌 상황(방이 중간에 있는 상황)에서 선택된 방의 Prev와 Next가 null일수가 있나요? 널값에 대한 체크를 한다고 하셨는데 제대로 연결리스트가 이어졌다면 null값을 왜 체크하는지 궁금해서 여쭤봅니다. 감사합니다
-
해결됨모의해킹 실무자가 알려주는, 파일 다운로드 취약점 공격 기법과 실무 사례 분석
섹션2. 취약점 분석 방법론(4) 강의 내용중에 질문이 있습니다.
안녕하세요. 섹션2, 취약점 분석 방법론(4) 강의를 보고 있는데요. 내용중에 이해가 되지 않는 부분이 있어서 질문드립니다. 강의 15분쯤에 역슬래시(\) 대신에 %5C를 인자값으로 넣고 테스트하는 부분인데요. 왜 역슬래시값을 인자에 넣었을 때는 에러가 나고 %5C 값을 인자 값에 넣고 테스트 할 때는 파일이 정상적으로 다운로드가 되는지 궁금합니다. %5C도 url decoding이 되면 역슬래시가 되는데요. 내부적으로 어떤차이가 있을까요? 설명 부탁드려도 될까요? 감사합니다~
-
해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
제목 BFS라 되어있는데 DFS 로 바꾸어 주세요 ^^
감사합니다
-
해결됨홍정모의 따라하며 배우는 C언어
6.16 배열 선언 관련 질문이 있습니다.
#include <stdio.h> int main() { const int num_days = 365; int daily_temperature[num_days]; // 이 줄에 컴파일 오류가 생깁니다. } 6.16에 3:35쯤에서 array size를 define으로 넣는 경우도 많이 있다고 말씀하셨는데요 궁금하여 num_days를 const int로 선언을 해보았는데 위 코드를 실행해보니 "expression must have a constant value"라고 오류가 발생하네요... 오류가 왜 발생하는 것인지요?
-
해결됨CSS Flex와 Grid 제대로 익히기
선생님 새로운 강의 언제 출시되나요?
4월에 출시예정이라고 알고있었는데.. 혹시 미뤄지신건가요?? 기다리고있겠습니다@-@! 충성충성
-
미해결단 2주간 키운 블로그로 월 80만원 용돈 벌기
안녕하세요^^ 강의 잘들었습니다
자생님~ 강의 잘 들었습니다. 짧은시간에 블로그수입에 대한 정보 얻었네요^^ realife@kakao.com 으로 자료 부탁드려요~~
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@Column의 insertable에 대해서 여쭙고 싶습니다.
안녕하세요 알찬 강의 잘 보고 있습니다. updateble이 false인 경우는 쉽게 생각해볼 수 있는데 insertable이 false인 경우는 어떤 경우를 상정해볼 수 있을까요?
-
미해결React로 NodeBird SNS 만들기
this. set-cookie domain attribute was invalid with regards to the current host URL
IP로도 해보고 무료 도메인으로 domain: '.snsservice.tk' 이런 식으로 점 찍어서 해도 안되는데 해결을 못하겠습니다 ㅠㅠ
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
파이썬 프로그램 설치는
python.org에서 설치하는 파이썬 프로그램은 자바에서 JVM 개념으로 봐도 될까요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
회귀분석에서 전처리과정 scaling에 대해 질문이 있습니다.
안녕하세요 강사님 수업을 너무 유익하게 잘 듣고있습니다. 감사합니다.! 다름이 아니라, (Y가 수치형 변수일 때, 즉 Regression 문제에서) X변수들을 전치리하는 과정에서 X가 수치형 변수이고 서로다른 단위로 measure될 때, scaling은 필수인가요? 아니면 scaling 을 할 때와 안할 때 모두 해보고 더 잘나오는 것을 선택하는게 최선인가요? 감사합니다.
-
React로 NodeBird SNS 만들기
IP로만은 set-cookie가 안되는건가요?
삭제된 글입니다
-
미해결React로 NodeBird SNS 만들기
belongsTo에 의해 생겨난 Id에 대한 질문
6:58초쯤 내용인데요, 제가 Sql 기본기가 없어서 질문드립니다. belongsTo를 하면서 UserId, ReweetId가 생기는 건 이해했는데요, 저 UserId라는게 User테이블에 자동으로 붙는 id를 갖고 온거 맞나요? 제가 foreignKey랑 좀 헷갈리는 것 같네요
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
강사님 재문의 드립니다.
강사님.. 이런 오류가 떠서 설치하라는 것도 다 설치해 보았고 안드로이드 SDK파일 위치가 이러하길래 들어가서 봤더니 파일이 이렇게 되었는데 이게 맞는건지 잘 모르겠고 도저히 무슨 문제인지 모르겠어요. 1. 제어판-프로그램 제거로 안드로이드 스튜디오를 제거하여 강사님께서 알려주신 루트대로 다시 설치해 보았습니다. 2. 하나 의문점이 생긴 게, 다시 설치한 안드로이드 스튜디오에 분명 지워졌을 거라고 생각한 flutter와 SDK platform들이 깔려 있었습니다. 3. 파일과 프로그램들의 저장 위치가 잘못되었나 싶지만, 저장 위치가 설치와 실행에 영향을 미칠까 싶어서 재문의 드립니다.
-
해결됨Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
게시물 보는화면 UI 작성 강의에서 그림을 클릭시 그림이 화면에 꽉 차도록 조정하는 방법 문의드립니다.
게시물 보는화면 UI 작성에서 Search 페이지에서 그림을 클릭하면 그림이 화면에 꽉 찬 화면이 되지 않는데 어떻게 해야 하는지 문의드립니다. 1. 첫번째 그림 이미지 주소 https://firebasestorage.googleapis.com/v0/b/instagram-clon-762d7.appspot.com/o/post%2F1588602748647.png?alt=media&token=9c18b7fd-cf56-443f-925d-cbbc40ddb87f 2. 두번째 그림 이미지 주소 https://firebasestorage.googleapis.com/v0/b/instagram-clon-762d7.appspot.com/o/post%2F1588657536331.png?alt=media&token=7e7d9297-4b8e-4288-90e0-72c494a05f66 3. 참고로 detail_post_page.dart 파일 내부 소스 코드는 아래와 같습니다. 참고해 주시면 감사하겠습니다. import 'package:flutter/material.dart';class DetailPostPage extends StatelessWidget { final dynamic document; DetailPostPage(this.document); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('둘러보기'), ), body: _buildBody(), ); } Widget _buildBody() { return SafeArea( child: SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ Padding( padding: EdgeInsets.all(8.0), child: Row( children: <Widget>[ CircleAvatar( backgroundImage: NetworkImage(document['userPhotoUrl']), ), Padding( padding: EdgeInsets.only(left: 8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ Text(document['email'], style: TextStyle(fontWeight: FontWeight.bold), ), Text(document['displayName']) ], ) ), ], ), ), Hero( tag: document['photoUrl'], child: Image.network(document['photoUrl']), ), Padding( padding: const EdgeInsets.all(8.0), child: Text(document['contents']), ) ], ), ), ); }}
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기
안녕하세요 api 질문드립니다
강의대로 따라하는 도중에 api/users/auth 부분에서 에러가 나면서 그림이 다 안나오더라구요..영화 title이랑 설명은 제대로 나오는데 이미지가 안나옵니다ㅠㅠㅠ터미널 창에 에러는 [HPM] Error occurred while trying to proxy request /api/users/auth from localhost:3000 to http://localhost:5000/ 이런식으로 나옵니다! stackoverflow에서 하라는 대로 다 해봤는데 여전히 이미지가 나오지 않아서 문의드립니다...