묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
각 회차 문제지 파일 어디서 다운 받습니까?
문제 출력해서 보고 하려고 하는데 각 회차 문제지 파일 어디서 다운 받습니까?
-
미해결제대로 파는 Git & GitHub - by 얄코(Yalco)
대체 이메일 알려주세요 카카오이메일 먹통일 거 같은데...
질문은 강의페이지에 안내해놓은 이메일로 보내주세요!(이 페이지에 질문 X)현재 데이터센터로 티스토리마저 안되는데, 카카오 이메일 활용되어지고 있는지 궁금하네요, 저는 네이버로 질문할 거 보냈는데, 이메일 상태 보니 계속 발송 중이라고 뜨네요. 못받았으면, 대체 이메일 좀 알려주시면 감사하겠습니다.
-
미해결[리뉴얼] 타입스크립트 올인원 : Part2. 실전 분석편
Mac OS 에서는 F12 버튼 뭘로 입력하면 될까요?
5분 16초 즈음에 해당 타입이 선언되어 있는 리스트를 팝업 창 으로 보여주고 있는데요. 윈도우 에서는 F12 버튼을 클릭하면 보이는 걸로 알고 있는데, Mac OS 에서는 fn + F12 버튼을 클릭하면 해당 타입이 사용중인 File 로 이동되어 버리더라구요. 해당 타입이 선언되어 있는 팝업 형식으로 보려면 어떻게 해야 할까요??
-
미해결[D.P.(DappProject)] 디앱 프로젝트(NFT 생성, NFT 구매 및 판매)
블록체인 내의 데이터를 서버에 계속 update 시킬 수 있을까요?
안녕하세요!강의 외적인 질문을 드려도 될 지 모르겠네요.. 여쭤볼 곳이 마땅치 않아 프로젝트 진행 중 강의를 보고 많이 도움이 되어 여기에 올리게 되었습니다..ㅠㅠ NFT 관련 프로젝트를 진행 중에 있는데, 서비스에서 발생하는 NFT 거래 정보를 따로 서버에도 저장해주려고 합니다. 이럴 경우에는 서버에서 블록체인에 요청을 보내는 방법으로 구현해야 하나요..?블록체인에서 거래하는 과정이 서버와 별개다 보니, 프론트에서 블록체인에 대한 요청을 하거나 처리를 할 시 새로고침을 하거나 웹사이트를 꺼버릴 경우 서버에게 요청을 보내지 못하는 상황이 발생하더라구요..ㅠ즉, 컨트랙트가 성공해도 서버에 알려줄 수 없는 상황이 발생하는데, 이는 서버가 블록체인과 통신하는 방법으로 구현하는 방법 밖에 없을까요? 그리고 이렇게 구현한다면 지갑은 서버가 관리해야 하는지 궁금합니다..
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
ResultSet Cursor 방식 관련 질문 드립니다.
ResultSet 은 내부에 있는 커서 "cursor" 를 이동해서 다음 데이터를 조회할 수 있는데이 때 전체 결과 데이터는 DB 서버 내부의 메모리에 저장되는지 아니면 애플리케이션 서버 메모리에 저장되는 지가 궁굼합니다.
-
미해결스프링부트 시큐리티 & JWT 강의
구글 로그인 후, 구글 계정 선택 페이지
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님질 좋은 강의 올려 주셔서 잘 듣고 있습니다 ❤❤제가 지금 8강 수업을 듣고 있습니다.궁금한 점이 있습니다. 현재 로그인 창에서 구글 로그인 버튼을 누르면 구글 계정 중에서 선택하는 창이 떠야 하는데 이 과정 없이 바로 인덱스 페이지로 넘어가는 상태입니다. 어제까지는 구글 계정 선택하는 페이지가 중간에 떴는데 오늘은 갑자기 안되네요. 어제도 오늘과 마찬가지로 선택할 수 있는 구글 계정은 하나뿐이었습니다.어떤 부분이 문제일지 궁금합니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
Dockerfile 설정과 외부 리소스 의존성 관계
안녕하세요Dockerfile.dev나 Dockerfile 작성시RUN npm install 로 node.js 또는 react.js 등의 프레임워크 리소스파일을 받아오는데요물론 해당 프로젝트는 public cloud 를 이용한 예제이므로 전혀 상관없겠지만,만약 private cloud 또는 외부 리소스를 사용하기 어려운 제한된 환경에서는 어떤 방식으로 도커를 띄울 수 있나요?(java의 경우 gradle, maven 의존성을 private nexus repo에서 가져오는것처럼요)아키텍쳐 설명을 해주시면 감사하겠습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니찬이 전 왜 쓰러질가요?
맥북에서 유니티를 사용하고 있습니다.몇차례 스크립트도 확인하고 강의도 확인했는데 새로운 지점에 마우스를 클릭 하면 도착 후 유니찬이 쓰러집니다.맥북만 그런 현상이 생기는 건지 제가 뭘 체크 안한 것인지 문의 드립니다.감사합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
멀티쓰레드와 동시성문제
객체는 싱글톤으로 관리가 되는데 동시에 쓰레드로 요청하면 어떻게 작동하는 것인지 궁금합니다.첫번째 쓰래드가 사용하고 그 다음에 그 다음쓰레드가 사용되는 건가요??
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 요청 드립니다.
안녕하세요.강의자료 요청 드립니다.wine3354@naver.com 입니다.좋은 강의 감사합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
libs파일이 없네요...
[질문 내용]gradle환경 만드는 과정에서 말씀해주신 대로 윈도우 환경에서 gradle.build를 하여서build successful이 나왔는데, 자꾸 cd build에 있는 libs파일이 없다고 나오네요. 실제로 들어가보니 libs파일이 없는데재 설치해도 마찬가지입니다. 환경변수 모두 java11로 되어있고 모든 setting이 java11로 되어있는데도 에러가 나니, 다음 과정으로 넘어갈 수가 없네요..
-
미해결아이폰 앱 개발 입문 1편
이미지 리소스 다운로드 불가
이미지 리소스 다운로드시 '링크된 파일 다운로드' 를 어떻게 선택하면 될까요? '다른 이름으로 링크 저장'시 다운로드가 불가해서 문의 드립니다.
-
해결됨스프링 시큐리티
2) 필터 초기화와 다중 보안 설정 강좌
WebSecurityConfigurerAdapter가 deparcated된 후 SecurityFilterChain을 빈으로 등록하여 사용중인데, @Order를 사용하지 않아도 두 개의 SecurityConfig 클래스가 충돌이 나지는 않습니다.그런데 순서를 명시적으로 보장하기 위하여 @Order를 사용해도 원하는 순서대로 등록이 되지 않고 클래스 이름의 오름차순으로 먼저 호출되어 Bean으로 등록 됩니다. 이렇게 하는 것이 좋은 방법은 아닌 거 같아 여쭤봅니다. 다른 방법이 있을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인터셉처 2개 적용하기
안녕하세요!!!!제목 그대로 인터셉터를 2개 등록해서 사용하려고 했더니 Error creating bean with name 'memberApiController' defined in file [/Users/gimnayeon/Desktop/GreenProject/GrinGreen/out/production/classes/com/grin/GrinGreen/api/MemberApiController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberService': Unsatisfied dependency expressed through field 'passwordEncoder'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webSecurityConfig': Unsatisfied dependency expressed through method 'setContentNegotationStrategy' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration': Unsatisfied dependency expressed through method 'setConfigurers' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webConfig' defined in file [/Users/gimnayeon/Desktop/GreenProject/GrinGreen/out/production/classes/com/grin/GrinGreen/login/WebConfig.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'loginService': Unsatisfied dependency expressed through field 'passwordEncoder'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'getPasswordEncoder': Requested bean is currently in creation: Is there an unresolvable circular reference?위와 같은 오류가 발생합니다.상황을 대략 적자면1번 인터셉터로 로그인 제외 url을 설정2번 인터셉터로 api 작동 전 로그인 후 세션 주입이렇게 처리를 하려고 하는데 @Autowired 문제일까요?구글링을 해보려고 했으니 지금 티스토리 등이 정상적으로 열리지 않아 이렇게 질문 남깁니다ㅠ.ㅠMemberApiController@Slf4j @RequiredArgsConstructor @RequestMapping("/api") @RestController public class MemberApiController { private final MemberService memberService; private final LoginService loginService; /** 회원 등록 API **/ @PostMapping("/members") public CreateMemberResponse saveMember(@RequestBody @Valid CreateMemberRequest request) { Member member = new Member(); member.setNickname(request.nickname); member.setMail(request.mail); member.setPassword(request.password); member.setMember_type(request.member_type); member.setMember_status(request.member_status); member.setHint_password(request.hint_password); member.setAnswer_password(request.answer_password); member.setUpdated_at(now()); member.setCreated_at(now()); String mail = memberService.join(member); return new CreateMemberResponse(mail); } /** 회원 수정 API **/ @PutMapping("/members/{mail}/edit") public UpdateMemberResponse updateMember(@PathVariable ("mail") String mail, @RequestBody @Valid UpdateMemberRequest request) { memberService.update(mail, request.getNickname(), request.getAnswer_password()); Member findMember = memberService.findOne(mail); return new UpdateMemberResponse(findMember.getNickname(), findMember.getMail(), findMember.getHint_password(), findMember.getAnswer_password()); } /** 회원 탈퇴 API **/ @PutMapping("/members/{mail}/delete") public DeleteMemberResponse deleteMember(@PathVariable ("mail") String mail, @RequestBody @Valid DeleteMemberRequest request) { Member member = memberService.findOne(mail); memberService.delete(mail, request.getPassword()); return new DeleteMemberResponse(member.getMail(), member.getMember_status()); } /** 회원 로그인 API **/ @PostMapping("/login") public LoginMemberResponse loginMember(@RequestBody @Valid LoginMemberRequest request) { Member login = loginService.login(request.getMail(), request.getPassword()); return new LoginMemberResponse(login.getMail()); }MemberService@Slf4j @Service @Transactional(readOnly = true) @RequiredArgsConstructor public class MemberService { @Autowired private final MemberRepository memberRepository; @Autowired private PasswordEncoder passwordEncoder; /** 회원가입 **/ @Transactional public String join(Member member){ //비밀번호 암호화 후 레포지토리에 넘기기 String encodedPassword = passwordEncoder.encode(member.getPassword()); member.setPassword(encodedPassword); validateDuplicateMember(member);//중복회원검증 memberRepository.save(member); return member.getMail(); } /** 중복회원검증 **/ private void validateDuplicateMember(Member member) { List<Member> findMembers = memberRepository.findByMail(member.getMail()); if (!findMembers.isEmpty()){ throw new IllegalStateException("이미 존재하는 회원입니다"); } } private void validateDuplicateNickname(Member member) { Member findMembers = memberRepository.findOndByMail(member.getMail()); if (!findMembers.getNickname().equals(member.getNickname())){ throw new IllegalStateException("이미 존재하는 회원입니다"); } } /** 회원전체조회 **/ public List<Member> findMembers(){ return memberRepository.findAll(); } public Member findOne(String mail) { return memberRepository.findOndByMail(mail); } /** 회원 수정 **/ @Transactional public void update(String mail, String nickname, String answer_password){ Member member = memberRepository.findOndByMail(mail); if(nickname.equals(member.getNickname())) { validateDuplicateNickname(member); } member.setNickname(nickname); member.setAnswer_password(answer_password); member.setUpdated_at(now()); } /** 회원 탈퇴 **/ @Transactional public String delete(String mail, String password){ Member findUser = memberRepository.findOndByMail(mail); if(!passwordEncoder.matches(password,findUser.getPassword())){ //throw new IllegalStateException("비밀번호가 맞지 않습니다."); System.out.println("암호 실패"); return null; } findUser.setUpdated_at(now()); findUser.setMember_status("D"); return findUser.getPassword(); } }LoginService@Service @Transactional(readOnly = true) @RequiredArgsConstructor public class LoginService { @Autowired private final MemberRepository memberRepository; @Autowired private PasswordEncoder passwordEncoder; public Member findOne(String mail){ return memberRepository.findOndByMail(mail);} /** 로그인 **/ @Transactional //public String login(Member member){ public Member login(String mail, String password){ List<Member> findMember = memberRepository.findByMail(mail); Member findUser = memberRepository.findOndByMail(mail); if (findMember==null){ //throw new IllegalStateException("해당 이메일의 유저가 존재하지 않습니다."); //System.out.println("이메일 실패"); return null; } if(!passwordEncoder.matches(password,findUser.getPassword())){ //throw new IllegalStateException("비밀번호가 맞지 않습니다."); return null; } System.out.println("로그인 완료 :"+findUser.getNickname()); //세션 표시를 위해 닉네임값 넘기기 return findUser; } /** 비밀번호 매치 **/ @Transactional public String passwordMatches(Member member){ Member findUser = memberRepository.findOndByMail(member.getMail()); if(!passwordEncoder.matches(member.getPassword(),findUser.getPassword())){ //throw new IllegalStateException("비밀번호가 맞지 않습니다."); System.out.println("암호 실패"); return null; } return findUser.getPassword(); } /** 비밀번호 변경 **/ @Transactional public void updatePassword(String mail, String editPassword){ Member member = memberRepository.findOndByMail(mail); if (editPassword.equals(member.getPassword())) { throw new IllegalStateException("이전 비밀번호와 동일합니다."); } member.setPassword(editPassword); member.setUpdated_at(now()); } }WebConfig@Configuration @RequiredArgsConstructor public class WebConfig implements WebMvcConfigurer { private final LoginService loginService; @Override public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) { resolvers.add(new LoginMemberArgumentResolver()); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginCheckInterceptor()) .order(1) .addPathPatterns("/**") .excludePathPatterns("/", "/members/new", //"/login", "/logout", "/css/**", "/*.ico", "/error", "/api/**"); "/login", "/logout", "/css/**", "/*.ico", "/error"); registry.addInterceptor(new ApiLoginCheckInterceptor(loginService)) .order(2) .addPathPatterns("/api/business") .excludePathPatterns("/api/members/**"); } }ApiLoginCheckInterceptorpublic class ApiLoginCheckInterceptor implements HandlerInterceptor { private final LoginService loginService; public ApiLoginCheckInterceptor(LoginService loginService) { this.loginService = loginService; } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Member loginMember = loginService.login("test2@test.com", "test1234!"); HttpSession session = request.getSession(); session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember); return true; } }
-
미해결구글 스프레드시트로 배우는 업무 자동화(직장인 코딩)
강의 자료부탁합니다!
dhcnf123@gmail.com메일로 공유부탁드리겠습니다!
-
미해결
1:N 관계에서
특정 게시글을 조회하고 싶을 때 작성된 댓글들도 같이 보고 싶은데 InvalidDefinitionException: Direct self-reference leading to cycle 관련하여 에러가 뜹니다.@JsonIgnore로 해결하기보다 ResponseDto로 만들어서 entity -> ResponseDto로 변환해서 응답하고 싶습니다. 그래서 ResponseDto를 만들어서 entity -> ResponseDto로 변환했는데 저런 에러가 뜹니다. 어떻게 해결해야하는지 도와주세요그리고 @Builder를 사용해 빌터패턴을 적용할 때 인자가 많아질 경우 아래처럼 인자가 저렇게 길어지는 것이 맞는 건가요?? @Builder public ArticleResponseDto(Long id, String title, String content, LocalDateTime createdDate, LocalDateTime updatedDate, List<Hashtag> hashtags, List<Comment> comments) { this.id = id; this.title = title; this.content = content; this.createdDate = createdDate; this.updatedDate = updatedDate; this.hashtags = hashtags; this.comments = comments; }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
라이브러리 파일 없음.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 보이듯이...강사님은 없는 build 파일이 생기구요 라이브러리에는 logging 파일이랑 junit 등등 파일이 존재하지 않습니다... 똑같이 따라했는데 왜 없을까요... ㅠㅜㅠㅠ
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
elif a == c 의 생략
안녕하세요. 강사님, 코드에 관해 질문있어 글 남깁니다.3개의 입력 값을 sort한 상태이고, 두번째 elif 문에 도달한 경우, 가장 큰 값인 c와 가장 작은 값인 a는 동일할 수 없다고 판단했습니다. 예시처럼 elif문을 두 번 사용하지 않고 아래와 같이 코드를 작성해도 정답인지 여쭤보고 싶습니다.n = int(input()) max = 0 for i in range(n): tmp = input().split() tmp.sort() a, b, c = map(int, tmp) if a == b and b == c: res = a * 1000 + 10000 elif a == b or b == c: res = b * 100 + 100 else: res = c * 100 if res > max: max = res print(max)
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
각 페이지 이미지로 UX 플로우 만드는 방법 문의
Axure가 페이지들의 상하 관계로 자동 사이트맵 작성을 해주는 기능이 있는 것은 알고 있습니다.(1)번 페이지에서 A 버튼을 눌렀을 때 (ㄱ) 컨펌알럿이 나오고 컨펌하면 (2) 번 페이지로 이동하는 UX 플로우가 있을 때(1)번 페이지, (2)번 페이지의 화면을 그림으로 캡쳐하는 것이 아니라, 각 페이지가 component 처럼 자동 업데이트 되는 것처럼 페이지의 흐름을 표현하고 싶습니다.가능한 방법이 있는지 문의드립니다.예) (1번) 페이지 화면 -> (1)번 페이지 위에 (ㄱ) 컨펌알럿이 나온 화면 -> (2)번 페이지 화면
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
포스트맨 실행시 trace 부분을 변경할 수 있나요??
안녕하세요. 11:21 분쯤 보면 trace 부분을 볼 수 있는데,설정으로 단순한정보만 나올 수 있도록 변경이 가능한가요?