묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
List, Map으로 응답 시의 메시지 컨버터
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.@RestController public class TestController { @GetMapping("/get-string") public String getString() { return "hello"; } @GetMapping("/get-model") public User getUser() { User user = new User("hello", 20); return user; } @GetMapping("/get-list") public List<User> getList() { List<User> userList = new ArrayList<>(); User userA = new User("hello1", 20); User userB = new User("hello2", 20); userList.add(userA); userList.add(userB); return userList; } @GetMapping("/get-map") public Map<Integer, User> getMap() { Map<Integer, User> userMap = new HashMap(); User userA = new User("hello1", 20); User userB = new User("hello2", 20); userMap.put(1, userA); userMap.put(2, userB); return userMap; } }코드가 위와 같을 때,/get-string에서는 문자 처리이므로 StringHttpMessageConverter가 동작하고,/get-model에서는 객체 처리이므로 MappingJackson2HttpMessageConverter가 동작함을 알았습니다.그런데 /get-list, /get-map에서는 어떤 메시지 컨버터가 작동하게 되는 것인지 잘 모르겠습니다.포스트맨을 이용해 출력해 봤을 때는 JSON 형식으로 나왔는데, 그러면 List와 Map으로 응답하는 경우에도 MappingJackson2HttpMessageConverter가 작동하게 되는 것 인가요?⬇️ List 리턴 시⬇️ Map 리턴 시
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
S3 객체 잠금 모드
거버넌트 모드랑 규정준수 모드랑 설명이 반대로 되있는거 아닌가요?https://aws.amazon.com/ko/about-aws/whats-new/2018/11/s3-object-lock/
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
함수 관련 질문
def first_func(w): print('Hello, ', w) word = 'Goodboy' first_func(word)제가 이해한 메커니즘이 맞는지 궁금하여 질문 남겨봅니다.먼저 'first_func'라는 함수를 지정해주고 값은 w이고,이 함수의 행동은 print구문을 출력하는것입니다.다음은 word 라는 변수를 지정해주고1번째에 설정한 'first_func'함수의 값은 word가 되며이 구문으로 인해 word = w 가 성립되어 print구문에 w 가 word로 바뀌어 결과적으로 Hello Goodboy가 출력이 되는게 맞나요?
-
미해결[딥러닝 전문가 과정 DL1102] 딥러닝을 위한 파이썬 레벨2
slack 가입 신청 링크가 없습니다.
[딥러닝 전문가 과정 DL1102] 딥러닝을 위한 파이썬 레벨2] orientation을 들었는데 슬랙 가입 신청 링크가 어디있는지 보이지않습니다.
-
해결됨모의해킹 실무자가 알려주는, XSS 공격 기법
DOM BASED XSS 에서 POST 방식과 URL에서 #?사용효과
크리핵티브님 안녕하세요.DOM BASED XSS에서 POST방식을 쓰면 사용자 입력 값을 불러올 방법이 없기 때문에 못쓴다고 하셨는데 클라이언트가 POST방식으로 서버에 보내고 서버에서 되돌려준다면 DOM을 통해 페이지 구성할 수 없는건가요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
dynamic import활용하다가 만난 에러
제로초님 안녕하세요,강좌 내용을 활용해서 기능을 추가하다가 에러를 만났는데아무리 구글링하고 찾아봐도 뭘 어떻게 해결해야할지 몰라 질문 올립니다ㅠ상황은 draft-wysiwyg이라는 라이브러리를 활용해서 편집기능을 추가하려고 하고,이 라이브러리는 ssr에서는 에러가 난다고해서다이나믹 라우팅으로 가져와서 사용해야 해서 이렇게 가져왔더니 타입에러가 나고 있습니다.일단 코드 먼저 보여드릴게요아래는 에러메세지 입니다도움주시면 감사하겠습니다
-
미해결스프링 시큐리티 OAuth2
front channel + authrozatio_code with PKCE
1.authorization_code 방식이 백채널에서만 이뤄지는 것이 아닌가요?2. 프론트에서 이뤄지면 client secret + authorization_code 를 http 요청같은데 담아서 보내게 되는건가요?
-
미해결실전! 스프링 데이터 JPA
Spring data JPA 각 메소드에 대해서 @Transactional이 있다면
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@Transactional이 끝날 때 커밋을 해주는 것으로 알고 있습니다. 그리고 spring data jpa 메소드마다 transactional이 있는 것으로 알고 있습니다.그렇다면 service 에서 transactional로 선언되어 있다고 하더라도 service의 한 메소드 안에서 여러개의 spring data jpa 메소드가 사용될 때 service 메소드 단위가 아닌 spring data jpa 메소드마다 트랜잭션이 발생하는 문제가 생기지 않나요?
-
해결됨홍정모의 따라하며 배우는 C++
11:05부근 explicit instantiation이 이해가 잘 가지 않습니다.
char 타입으로 instantiation해야된다는 내용은 main.cpp에 있고 main.cpp는 MyArray. h만 include하고 있으므로 MyArray.cpp파일에 있는 print()의 바디부분을 실행할 때는 templatized된 클래스를 어떤 자료형으로 instantiation해야할 지 모른다는 것까지는 이해했습니다.그리고 이를 해결하기 위해서 MyArray.cpp에 가서 char 타입으로 컴파일을 해야된다라고 알려주는게 explicit instantiation이다라고 말씀하셨는데 예제를 보면 template class MyArray<char>; template class MyArray<double>;이렇게 char 타입도 있고 double 타입도 있으니깐 이건 char 타입으로 컴파일을 해야된다, double 타입으로 컴파일을 해야된다가 될텐데 여기서 다시 char 타입으로 해야하는지 double 타입으로 해야하는지는 결국 main.cpp를 거쳐야 알 수 있는 내용이 아닌가요? 어떤 원리로 char이랑 double의 이지선다가 된 상황에서 char 타입을 선택하게 되는지 궁금합니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mmcv v2.0.0 문제
선생님 안녕하세요 좋은 강의 감사합니다.from mmdet.apis import init_detector, inference_detector import mmcv를 하면 아래와 같은 경고 메시지가 뜨는데요./usr/local/lib/python3.7/dist-packages/mmcv/__init__.py:21: UserWarning: On January 1, 2023, MMCV will release v2.0.0, in which it will remove components related to the training process and add a data transformation module. In addition, it will rename the package names mmcv to mmcv-lite and mmcv-full to mmcv. See https://github.com/open-mmlab/mmcv/blob/master/docs/en/compatibility.md for more details. 'On January 1, 2023, MMCV will release v2.0.0, in which it will remove ' 혹시 이것에 맞춰서 코드의 내용이 많이 변할까요? 뒷부분은 이름이 바뀐다는 것 같은데, 앞부분에서 "it will remove components related to the training process and add a data transformation module." 부분이 무슨뜻인지 잘 모르겠어서요!
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
def cam 부분에 일부가 조금 설명이 필요해서 질문남깁니다
12.5 CAM 모델 구축에서for idx in range(act.size(0)): if idx == 0: tmp = act[idx] * w[label][idx] else: tmp += act[idx] * w[label][idx] 이 부분은 어떤 기능을 하나요 ?? 직관적으로 잘 모르겠네요
-
미해결(2025 최신 업데이트)리액트 : 프론트엔드 개발자로 가는 마지막 단계
api 인터셉터사용시 post
안녕하세요. api 인터셉터 사용시 post 내용을 전달 하면 백엔드에서 param 값을 못읽어 옵니다.api.post('주소',param) 하면 param 값을 못읽어 와서바로 axios.post('주소',param)으로 일단 진행 했는데 어떻게 수정 하면 될까요? import axios from "axios"; const api = axios.create({ // baseURL: "http://localhost:5000", headers: { "Content-type": "application/json" }, }); api.interceptors.request.use( function (config) { console.log("config : ", config); return config; }, function (error) { console.log("error : ", error); return Promise.reject(error); } ); api.interceptors.response.use( function (response) { console.log("response : ", response); return response; }, function (error) { console.log("error : ", error); return Promise.reject(error); } ); export default api;
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Serializable을 사용하는 이유가 뭔가요?
엔티티나 dto를 만들 때 Serializable을 상속 받던데 그 이유가 뭔가요?찾아보니 직렬화를 하게 해준다고 하는데 DB와 직접적으로 연결되는 엔티티는 필요할 수 있다고 쳐도 dto는 애플리케이션에서 객체로 전달되니 안써도 되지 않나요? 더해서 response객체에는 적어주지 않는 이유가 궁금합니다db에 저장한다 해도 엔티티에 Serializable을 사용하지 않아도 잘 저장되는데, 그래도 사용한 이유는 직렬화가 잘 되지 않는 디비와 통신할 때는 문제가 발생할 여지가 있어서인가요?
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
깃허브에 배포
안녕하세요 선생님빌드 후에도 homepage나 라우터에도 잘 못작성해서 몇 번 수정하고 push한담에 다시 npm run build => npm run deploy했는데요.bulid폴더 생기고 Published도 생겼는데 url 들어가보니까 요로케 나와용...참고로 h1에 있는 글은 제가 readme.에 적었던 부분이거든요..? 빌드된 index.html도 이것뿐이더라고요 ㅠㅠㅠ<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/react_neflix/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/react_neflix/logo192.png"/><link rel="manifest" href="/react_neflix/manifest.json"/><title>React App</title><script defer="defer" src="/react_neflix/static/js/main.822d346e.js"></script><link href="/react_neflix/static/css/main.d2a42970.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html> 처음 배포 해보는건데 어떤게 잘 못된건지 감을 못잡겠습니다... 도와쥬세영
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
오류인지 모르겠지만 질문이요
router.get('/:userId', async (req, res, next) => { // GET /user/1 try { const fullUserWithoutPassword = await User.findOne({ where: { id: req.params.userId }, attributes: { exclude: ['password'] // 제외 }, include: [{ model: Post, attributes: ['id'] // 가져오기 }, { model: User, as: 'Followings', attributes: ['id'] }, { model: User, as: 'Followers', attributes: ['id'] }] }) if (fullUserWithoutPassword) { const data = fullUserWithoutPassword.toJSON(); data.Posts = data.Posts; // 개인정보 침해 예방 data.Followers = data.Followers; data.Followings = data.Followings; res.status(200).json(data); }else { res.status(404).json('존재하지 않는 사용자 입니다'); } } catch (error) { console.error(error); next(error);서버사이드렌더링/해시태그까지 들었어요백엔드 routes/user.js 에서 user/1 부분 코드인데요 if (fullUserWithoutPassword) { const data = fullUserWithoutPassword.toJSON(); data.Posts = data.Posts; // 개인정보 침해 예방 data.Followers = data.Followers; data.Followings = data.Followings; res.status(200).json(data);여기부분 Posts, Followers, Followings 뒤에 .length 붙이는건가요?? 붙였던거 같은데 전 왜 붙이면 오류 나고 이렇게 안붙이면 오류가 안뜨는데 상관없나요? length 뺏더니 되네요..이거 찾다가 하루종일 걸렸네요ㅠ해시태그, post/번호 user/번호 다 되는데 어디서 문제생긴건지 상관없는건지 모르겠습니다어떤차이인가요?
-
미해결스프링 시큐리티
CSRF 토큰 질문
안녕하세요. 강사님아래 CSRF 질문과 비슷한 내용인데 잘 이해가 가지 않아서 질문드립니다.이미 사용자가 로그인되어 있는 인증된 상태라고 한다는 가정하에사용자는 이미 로그인이 되어 있기 때문에 세션 쿠키가 만들어진 상태이고 공격자가 심어 놓은 URL 의 액션을 실행한다고 해도 사용자의 서비스 시스템은 정상적인 사용자의 액션이라고 판단한다고 하는 부분은 이해가 됩니다.질문입니다.여기서도 사용자가 이미 로그인 되어 있을 때 csrf 토큰 값도 만들어져 있어서 가져올 수 있는 것 아닌가요..?여기 답변이 잘 이해가 안갑니다.사용자의 서비스 시스템이 해당 액션에 대해 csrf 토큰값을 요구할 경우 공격자의 사이트에는 사용자 서비스에서 사용자에게 발행한 csrf 토큰값을 알수가 없기 때문에 접근이 거부 됩니다.
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
웹디자인기능사 시험 관련
psd 작업 파일의 경우 수험자 제공폴더>원본 이미지 파일에 저장하면 되는 걸까요?네비게이션의 경우 예를 들어서 상단 전체 검정 배경 드롭다운을 만들어야는데 실수로 상단전체 드롭다운으로 만들면 몇 점 정도 감점이 될까요?css에 @charset "utf-8";를 넣으라하는데 왜 넣어야되는 걸까요? 큰 차이가 있나요?script 링크에 'type=text/javascript' 넣는 건 선택사항인가요?
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
apk 화면 안넘어감
APK로 안드로이드 기기에서 실행했는데 하얀화면만 뜨고 넘어가질않아요 ㅠㅠ해결법 있을까요..?
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
외부 DB연결 관련 질문드립니다.
안녕하세요A노트북에 mysql을 설치하고 B노트북에서 mysql이 설치가 된 db에 커넥션을 연결하고 싶은데 혹시 어떻게 해야하나요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
리사이클러뷰 질문 드려요..
강사님 물어볼 곳이 없어서 질문 드려요. 제가 파이어베이스 연동해서 리사이클러뷰 안에 리사이클러뷰를 만들고 있는데 월요일 보시면 중간에 삭제 하면 layout은 안없어지더라고요.. 상위 리사이클러뷰 코드입니다.override fun onBindViewHolder(holder: ScheduleAdapter.ViewHolder, position: Int) { val day: ProfLectureTimeTable = items[position] with(holder) { day_Text.text = day.days //자식 레이아웃 매니저 설정 val layoutManager = LinearLayoutManager( schedule_RV.context, LinearLayoutManager.HORIZONTAL, false ) //자식 어댑터 설정 val dayAdapter = DayAdapter(day.lecture1) schedule_RV.layoutManager = layoutManager schedule_RV.adapter = dayAdapter dayAdapter.setItemClickListener(object: DayAdapter.ItemClick{ override fun onItemClick(view: View, position: Int) { val mDialogView = LayoutInflater.from(view.context).inflate(R.layout.remove_dialog, null) val mBuilder = AlertDialog.Builder(view.context) .setView(mDialogView) .setTitle("삭제") .setMessage("내용을 삭제하시겠습니까?") val alertDialog = mBuilder.show() alertDialog.findViewById<Button>(R.id.okBtn)?.setOnClickListener { when(day.lecture1?.get(position)?.day){ "월요일" -> { FBRef.LectureRef.child("A").child("lecture1").child(position.toString()).removeValue() } "화요일" -> { FBRef.LectureRef.child("B").child("lecture1").child(position.toString()).removeValue() } "수요일" -> { FBRef.LectureRef.child("C").child("lecture1").child(position.toString()).removeValue() } "목요일" -> { FBRef.LectureRef.child("D").child("lecture1").child(position.toString()).removeValue() } "금요일" -> { FBRef.LectureRef.child("E").child("lecture1").child(position.toString()).removeValue() } } alertDialog.dismiss() } alertDialog.findViewById<Button>(R.id.noBtn)?.setOnClickListener { alertDialog.dismiss() } } }) dayAdapter.notifyItemRemoved(position) } }