묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HTTP 요청 메시지 - JSON 편을 보며 궁금합 점이 있습니다.
안녕하세요! 김영한님. 항상 좋은 강의 너무 감사합니다. 강사님 덕분에 웹에 대해서 많은걸 빠르고 정확하게 알 수 있었습니다. 질문 드리고 싶은게 있는데요! 강의를 보던 도중 HttpServletRequest -> @RequestBody 어노테이션을 사용하여 json 을 바로 HelloData 타입에 맵핑 시켜버리는 정말 간단하고 효율적인 방법이 있다 라는 걸 배웠을때. "이런 지식(@RequestBody에서 객체로 바로 맵핑이 가능하는 하다는 것)을 모르는 상태에서 코드를 해석하는건 거의 불가능이겠네..?" 라는 생각과 함께 "그럼 이런것들은 어디서 찾아봐야 하는거야??" 라는 궁금증으로 이어지게 되었습니다. 지금이야 강사님께서 스프링mvc를 매우 친절하게 거의 씹고 소화가 되도록 입에 넣어주시기 까지 해서 무리없이 배우고 있지만, 강사님 도움 없이 제가 혼자 공부를 해야할 때는 과연 어떻게 해야할지 잘 모르겠습니다! (막힐 때마다 동영상 강의를 틀 수 도 없는 노릇이구요 ㅜ) 혹시 이런 정보를 담고있는 레퍼런스가 있을까요? 없다면 어떻게 학습해야할지 궁금합니다. 그리고 강사님은 스프링부트 뿐만이 아니라 프레임워크를 새로 배우실 때에는 어떤 식으로 접근하시는지 약간의 노하우를 알려주시면 정말 감사할 것 같습니다!
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
Vue.js 완벽가이드와 Vue.js 끝장내기 둘중에 하나만 수강한다면?
안녕하세요! 캡틴판교님의 Vue.js 모든강의를 구입한 학생입니다. 당장 프론트개발에 투입되어 강의를 수강하고있는데요, Vue.js 완벽가이드 와 Vue.js 끝장내기 강좌에 중복된 개념의 내용이 일부 존재하는 것 같아 하나만 수강해도 된다면 혹시 어떤걸보면 좋을까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestParam Map<String, Object> paramMap 등록?
안녕하세요 ! @ResponseBody@RequestMapping("/request-param-Map")public String requestParamMap(@RequestParam Map<String, Object> paramMap) { log.info("username={}, age={}", paramMap.get("username"), paramMap.get("age")); return "ok";}여기서 paramMap에 어떻게 등록이 되는건가요?자동으로 username과 age의 키값이 등록되고 Object에 사용자가입력한 값이 value에 저장이 되나요..?
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
프론트 관련 질문
안녕하세요, 일단 백엔드 NestJS 부분만 듣고 있는데요, 프론트를 NextJS 로 구현한다고 하면 pages/chat 처럼 만들어서 소스의 front 부분 코드를 참조해서 넣으면 문제없이 작동할까요? 아 그리고 react-query 부분이 보이는데 이쪽은 아직 작업중이신건가요?
-
해결됨[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
.btn span에서 border-bottom 없애는 부분이랑 네비게이션 질문있습니다.
.btn span에서 밑에 보더를 없애려고 border-bottom: none; background-color: #fff; margin-bottom: -1px;은 줬는데 display: block; 으로 하면 밑에 보더가 안없어지고 inline-block으로 해야 없어지더라구요. 강의 영상에서는 block으로 해도 된다고 하셨는데... 어떤 차이가 있는 건가요..? 그냥 제가 css 입력을 잘못한걸까요...? css도 같이 첨부합니다. (밑에 css에서는 span이 아니라 a태그로 되어있습니다.) 두번째로 네비게이션의 .li > a 부분에 마우스가 올라가면 서브메뉴가 나와야 하는데 서브메뉴가 내려오는 부분에만 마우스가 올라가도 바로 내려와버립니다. 뭐가 문제인지 모르겠어요... 사진 첨부합니다.. @charset "utf-8"; /*background*/ body { background-color: #ffffff; color: #222328; margin: 0; font-size: 15px; } a { text-decoration: none; color: #000; } /*inner-set*/ .container {} .header-inner { background-color: #ddd; } .content-inner {} .footer-inner { background-color: #ddd; overflow: hidden; } /*header*/ header { width: 1200px; margin: auto; height: 100px; position: relative; } header > div { height: 100px; } .header-logo { width: 200px; float: left; line-height: 130px; } /*navigation*/ .navi { width: 600px; float: right; } .menu { list-style: none; padding: 0; margin-top: 68px; } .menu li { float: left; width: 25%; text-align: center; height: 180px; box-sizing: border-box; } .menu li > a { border: 1px solid black; padding: 5px; display: block; transition: 0.5s; } .menu li:hover > a { background-color: black; color: white; } .sub-menu { border: 1px solid black; display: none; } .sub-menu a { color: white; display: block; padding: 5px; transition: 0.5s; } .sub-menu a:hover { background-color: white; color: black; } .sub-back { background-color: black; width: 100%; height: 170px; position: absolute; right: 0; top: 100%; z-index: -1; display: none; } /*slide*/ .slide { width: 1200px; margin: auto; height: 300px; position: relative; overflow: hidden; z-index: -2; } .slide div { /* height: 300px;*/ width: 3600px; font-size: 0; position: absolute; animation: slide 10s linear infinite; top: 0; left: 0; } @keyframes slide { 0% {left: 0;} 30% {left: 0;} 35% {left: -1200px;} 65% {left: -1200px;} 70% {left: -2400px;} 95% {left: -2400px;} 100% {left: 0;} } /*items*/ .items { width: 1200px; margin: auto; overflow: hidden; } .items > div { box-sizing: border-box; height: 200px; float: left; } /*news*/ .news, .gallery { width: 430px; padding: 10px; } .btn {} .btn a { border: 1px solid black; display: inline-block; width: 100px; padding: 5px; text-align: center; border-radius: 5px 5px 0 0; border-bottom: none; background-color: #fff; margin-bottom: -1px; } .tab1, .tab2 { border: 1px solid black; border-radius: 0 5px 5px 5px; padding: 5px; padding-top: 5px; height: 135px; background-color: white; } .tab1 a { display: block; padding: 3px; border-bottom: 1px solid black; } .tab1 a:last-child { border-bottom: none; } .tab1 a em { font-style: normal; } .tab1 a b { font-weight: normal; float: right; } .tab2 { text-align: center; } .tab2 img { padding-top: 8px; width: 120px; } /*banner*/ .banner { width: 340px; padding: 10px; } .banner img { width: 100%; } /*footer*/ footer { width: 1200px; margin: auto; overflow: hidden; } footer > div { height: 100px; } .footer-menu { float: left; } .footer-menu > div { height: 50px; width: 1000px; text-align: center; box-sizing: border-box; } .bottom-menu { line-height: 50px; } .copyright { line-height: 20px; } .family-site { float: right; width: 200px; } /*modal*/ .modal { background-color: rgba(0, 0, 0, 0.2); width: 100%; height: 100%; position: absolute; top: 0; left: 0; display: none; } .modal-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: white; border-radius: 10px; padding: 30px; width: 400px; height: 450px; } .modal h2 { text-align: center; } .modal p { padding: 10px; margin-top: 30px; } .close-modal { float: right; background-color: black; color: white; padding: 7px; border-radius: 5px; margin: 10px; margin-top: 20px; cursor: pointer; } 제이쿼리 $('.menu li').mouseenter(function(){ $('.sub-menu, .sub-back').stop().slideDown() }) $('.menu li').mouseleave(function(){ $('.sub-menu, .sub-back').stop().slideUp() })
-
미해결게임 프로그래머 취업 전략 가이드
취업 고민 입니다.
삭제된 글입니다
-
미해결자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!
System.out.println("i + j = " + (i+j); 이렇게 쓰는 이유가 뭔가요? " "i + j " = (i +j)라고 쓸수 있는거 아닌가요?
System.out.println("i + j = " + (i+j); 이렇게 쓰는 이유가 뭔가요? " "i + j " = (i +j)라고 쓸수 있는거 아닌가요?
-
미해결스프링 핵심 원리 - 기본편
@Configuration이 붙지 않은 상태에서 @Configuration이 붙은 설정 정보와 같은 원리로 적용되는 이유
안녕하십니까 강사님 요즘 강사님 스프링 강의를 들으면서 파고드는 재미를 느끼고 있음에 감사합니다. 다름이 아니라 이번 강의에서 DiscountService가 @Configuration이 붙지 않은 상태에서 Annotation~~의 인자로 들어감에도 불구하고, @Configuration이 붙은 설정 정보 클래스와 동일하게 적용이 되는 것을 보고 궁금하여 QnA를 모두 보았습니다. 그래서 아래의 QnA에 대한 답을 보고 파고드는데 제 궁금증이 해소되지 않아 질문드립니다. https://www.inflearn.com/questions/261305 1. 이건 예외처리인 것 같습니다. 2. 이게 무슨 말인지 몰라 하나하나 레퍼런스를 보면서 해석해보았습니다. this.getApplicationStartup()은 applicationStartup형 을 반환하고, applicationStartup의 메서드 start를 사용하여 새 단계를 만들고 시작을 표시한다고 합니다. (무슨 말인진 모르겠지만) 그래서 start메서드를 사용하면 StartupStep형을 반환한다고 합니다. 여기서 tag메서드를 사용하여 인자로 받았던 componentClasses 내용을 파라미터로 사용한다.? 3. this.reader는 이전 강의에서 배운 스프링이 어떻게 종류별로 BeanDefinition을 읽게 되는지 그 때 배웠었고, register메서드를 사용하여 componentclasses를 등록한다. register 메서드를 또 따라가보니 그냥 빈을 등록하는 것 같은데,, 계속해서 파고들었는데도, 왜 @Configuration이 붙지 않은 클래스를 인자로 넣어도 @Configuration이 붙은 설정 정보 클래스와 동일하게 되는지 궁금합니다,, 혹시 제가 잘못된 곳을 파고있었다면,, 혹시 어딜 파야 이 부분을 알 수 있는지 여쭤봐도 될까요??
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코드 피드백 부탁 드립니다
import java.util.*; public class Main { public int solution(int n, int[][] arr) { int answer = 0; int[] stu = new int[n]; int cnt; int sum = 0; for (int i = 0; i < n; i++) { cnt = 0; for (int j = 0; j < 5; j++) { for (int k = 0; k < n; k++) { if (i != j && arr[i][k] == arr[j][k]) { cnt++; stu[i] += cnt; cnt = 0; } } } sum = Math.max(sum, stu[i]); if (sum == stu[i]) { answer = i + 1; } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] arr = new int[n][5]; for (int i = 0; i < n; i++) { for (int j = 0; j < 5; j++) { arr[i][j] = sc.nextInt(); } } System.out.print(T.solution(n, arr)); } }
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
5강 데이터베이스 접속
삭제된 글입니다
-
해결됨풀스택 리액트 토이프로젝트 - REST, GraphQL (for FE개발자)
기술 스택에 관해서 질문이 있습니다
안녕하세요 강의 너무 잘 들었습니다. 현재 저는 실무에서 apollo client를 사용해서 프론트엔드 개발을 하고 있는데요. 강의에서는 apollo client 대신 react-query, graphql-tag, graphql-request를 사용하셨는데 간단하게 예제를 만들기 위해서 사용하셨나라는 생각도 들지만 혹시 다른 이유가 또 있지 않을까 궁금해서 질문드립니다
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
Upload 컴포넌트가 api서버랑 통신을 주고받는 건가요?
<Upload name="image" action={`${API_URL}/image`} listType="picture" showUploadList={true} onChange={onChangeImage} > 여기서 action의 url로 요청을 보내고 app.post("/image", upload.single("image"), (req, res) => { const file = req.file; console.log(file); res.send({ imageUrl: file.path }); }); api 서버에서 req인자로 받으면 res를 Upload컴포넌트에게 돌려주고 onChangeImage 함수에서 info 인자는 res로 받는 건가요? 혼자 한 시간 넘게 고민해봤는데 헷갈려서 질문드립니다.ㅜㅜ
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
Fetch Join 한계? 질문드립니다.~
안녕하세요 강사님 해결을 못해서 질문드립니다 .. class A{ .... @OneToMany List<B> bList; } class B{ ... @OneToMany List<C> cList; } class C{ ... } B,C는 데이터가 있을수도 있고 없을 수도 있는 형태입니다. (일부 생략하였습니다)select * from A a left join B b on a.a_id = b.a_id left join C c on b.b_id =c.b_id where a.email = 'email'; 결과를 List<A> 로 받으려고 합니다. 제 생각에는 아래 쿼리 한번이면 관련 데이터들을 하나의 쿼리로 할 수 있을 것 같은데fetch 조인이 OneToMany의 경우 fetch 조인은 한번 밖에 걸수 없는 것으로 알고 있습니다.이런 경우에는 native query로 사용해야하는 건가요..아니면 for loop를 돌면서 LAZY 로딩으로 각각 A가 가지고 있는 B의 개수만큼 쿼리를 날리는게 좋은걸까요..? (default_batch_fetch_size : 1000 설정) 질문드립니다
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
future에서 deferred를 사용하는이유
future타입을 deferred로 하면 future를 get하는 시점에 future에 바인딩된 함수를 호출한다는건데 그냥 get하는 시점에 해당함수를 바로호출하면 되는거 아닌가요?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
자바스크립트 비동기 처리(2) - Promise 질문이요
처음에 promise안쓰고 ajax만 썼을 떄 콜백함수끝나고 console찍었는데 값이 안나왔잖아요? 이유가 콜백함수보다 아래 있는 두번쨰 console이 먼저 실행되기 때문에 그리고 이제 promise쓴 코드인데 이것도 보면 .then이라는 콜백함수 안에다가 콘솔을 넣어놨으니까 데이터가 찍히는거지 promise안쓴거랑 똑같은 상황에서 비교하려면 callajax함수내에서 두번째 결과를 콜백함수 내에 있는데 아니라 밖에 있어야 하는거 아니에요? rpomise안쓰고 그냥 콜백해도 콜백안에다가 result하면 값나오게 되니까요. 그래서 하고싶은말은 promise를 왜쓴지 모르겠어요.
-
해결됨이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
에러 발생
이와 같은 에러가 발생하였는데 해결방법을 고민해보았지만 답을 찾지 못하여 질문을 남깁니다.깃허브 주소도 남기겠습니다https://github.com/onejaejae/Learn_Image_Fullstack양질의 강의 감사합니다!
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
virtualized list 기술 적용한 성능 최적화
안녕하세요 강사님! 이미지 인피니트 스크롤링할때 virtualized list 적용해서 성능을 최적화 하는 방법도 강의해 주실 수 있을까요?
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
수업자료 다운
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수업자료 다운을 했는데 압축폴더 안에 어떠한 자료도 없고, 폴더가 비어있다고 뜹니다. 자료를 다운 받을 수 있는 다른 방법이 있을까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
클라이언트 소켓에 질문있습니다.
예시코드처럼 클라이언트 소켓은 논블로킹으로 설정해주고 서버 소켓은 블로킹인 상황에서 서버소켓으로 accept해줘서 만든 서버쪽의 클라이언트 소켓은 논블로킹 소켓이 되는 건가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
커맨드와 쿼리의 구분 후 쿼리문 한번 더 실행에서의 궁금증...
강의에서 영한님께서는 커맨드와 쿼리를 구분하는 것을 선호하신다고 하셨습니다. 그래서 알아보니 이런걸 CQRS라고 하던데 회원 정보를 update시 update command 메소드 실행 후 보통같으면 update메소드 자체의 반환값으로 member객체나 member id를 받는데, 이것을 명령과 질의를 구분해 memberService.update() 후 memberService.findOne을 실행하면 결과적으로 쿼리문을 한번 더 실행을 하게 되잖아요? update 메소드 내에서도 findOne이라는 메소드를 호출하니깐요. 이렇게 명령과 질의를 분리하였지만 그 대가로 쿼리문을 한번 더 호출하게 된 셈인데 쿼리문을 한번 더 호출해서 명령과 질의를 구분하는 것이 많이 효율적인 패턴인가요?