묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
처음부터 듣지않고, 중급만 듣고 있는데 문제가 있습니다.
중급부터 듣기 시작하니, 강의중에 말씀하신 이미지 같은것들을 어디서 받을수 있을까요? 코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
-
해결됨[R을 R려줘] R 데이터 시각화
백신데이터접종 강의/problem with id.id존재x/df_map_join=left_join(df_map,df_countries, by=c("id"="id"))
#문제를 해결하는데 도움이 될지모르겠습니다.> > library("rnaturalearth") > map=ne_countries() > df_map=fortify(map) > names(df_map) [1] "featurecla" "scalerank" "labelrank" "sovereignt" "sov_a3" "adm0_dif" "level" "type" "tlc" [10] "admin" "adm0_a3" "geou_dif" "geounit" "gu_a3" "su_dif" "subunit" "su_a3" "brk_diff" [19] "name" "name_long" "brk_a3" "brk_name" "brk_group" "abbrev" "postal" "formal_en" "formal_fr" [28] "name_ciawf" "note_adm0" "note_brk" "name_sort" "name_alt" "mapcolor7" "mapcolor8" "mapcolor9" "mapcolor13" [37] "pop_est" "pop_rank" "pop_year" "gdp_md" "gdp_year" "economy" "income_grp" "fips_10" "iso_a2" [46] "iso_a2_eh" "iso_a3" "iso_a3_eh" "iso_n3" "iso_n3_eh" "un_a3" "wb_a2" "wb_a3" "woe_id" [55] "woe_id_eh" "woe_note" "adm0_iso" "adm0_diff" "adm0_tlc" "adm0_a3_us" "adm0_a3_fr" "adm0_a3_ru" "adm0_a3_es" [64] "adm0_a3_cn" "adm0_a3_tw" "adm0_a3_in" "adm0_a3_np" "adm0_a3_pk" "adm0_a3_de" "adm0_a3_gb" "adm0_a3_br" "adm0_a3_il" [73] "adm0_a3_ps" "adm0_a3_sa" "adm0_a3_eg" "adm0_a3_ma" "adm0_a3_pt" "adm0_a3_ar" "adm0_a3_jp" "adm0_a3_ko" "adm0_a3_vn" [82] "adm0_a3_tr" "adm0_a3_id" "adm0_a3_pl" "adm0_a3_gr" "adm0_a3_it" "adm0_a3_nl" "adm0_a3_se" "adm0_a3_bd" "adm0_a3_ua" [91] "adm0_a3_un" "adm0_a3_wb" "continent" "region_un" "subregion" "region_wb" "name_len" "long_len" "abbrev_len" [100] "tiny" "homepart" "min_zoom" "min_label" "max_label" "label_x" "label_y" "ne_id" "wikidataid" [109] "name_ar" "name_bn" "name_de" "name_en" "name_es" "name_fa" "name_fr" "name_el" "name_he" [118] "name_hi" "name_hu" "name_id" "name_it" "name_ja" "name_ko" "name_nl" "name_pl" "name_pt" [127] "name_ru" "name_sv" "name_tr" "name_uk" "name_ur" "name_vi" "name_zh" "name_zht" "fclass_iso" [136] "tlc_diff" "fclass_tlc" "fclass_us" "fclass_fr" "fclass_ru" "fclass_es" "fclass_cn" "fclass_tw" "fclass_in" [145] "fclass_np" "fclass_pk" "fclass_de" "fclass_gb" "fclass_br" "fclass_il" "fclass_ps" "fclass_sa" "fclass_eg" [154] "fclass_ma" "fclass_pt" "fclass_ar" "fclass_jp" "fclass_ko" "fclass_vn" "fclass_tr" "fclass_id" "fclass_pl" [163] "fclass_gr" "fclass_it" "fclass_nl" "fclass_se" "fclass_bd" "fclass_ua" "geometry" > head(df_map,2) Simple feature collection with 2 features and 168 fields Geometry type: MULTIPOLYGON Dimension: XY Bounding box: xmin: -180 ymin: -18.28799 xmax: 180 ymax: -0.95 Geodetic CRS: WGS 84 featurecla scalerank labelrank sovereignt sov_a3 adm0_dif level type tlc 1 Admin-0 country 1 6 Fiji FJI 0 2 Sovereign country 1 2 Admin-0 country 1 3 United Republic of Tanzania TZA 0 2 Sovereign country 1 admin adm0_a3 geou_dif geounit gu_a3 su_dif subunit su_a3 brk_diff name name_long brk_a3 brk_name 1 Fiji FJI 0 Fiji FJI 0 Fiji FJI 0 Fiji Fiji FJI Fiji 2 United Republic of Tanzania TZA 0 Tanzania TZA 0 Tanzania TZA 0 Tanzania Tanzania TZA Tanzania brk_group abbrev postal formal_en formal_fr name_ciawf note_adm0 note_brk name_sort name_alt mapcolor7 1 <NA> Fiji FJ Republic of Fiji <NA> Fiji <NA> <NA> Fiji <NA> 5 2 <NA> Tanz. TZ United Republic of Tanzania <NA> Tanzania <NA> <NA> Tanzania <NA> 3 mapcolor8 mapcolor9 mapcolor13 pop_est pop_rank pop_year gdp_md gdp_year economy income_grp 1 1 2 2 889953 11 2019 5496 2019 6. Developing region 4. Lower middle income 2 6 2 2 58005463 16 2019 63177 2019 7. Least developed region 5. Low income fips_10 iso_a2 iso_a2_eh iso_a3 iso_a3_eh iso_n3 iso_n3_eh un_a3 wb_a2 wb_a3 woe_id woe_id_eh woe_note 1 FJ FJ FJ FJI FJI 242 242 242 FJ FJI 23424813 23424813 Exact WOE match as country 2 TZ TZ TZ TZA TZA 834 834 834 TZ TZA 23424973 23424973 Exact WOE match as country adm0_iso adm0_diff adm0_tlc adm0_a3_us adm0_a3_fr adm0_a3_ru adm0_a3_es adm0_a3_cn adm0_a3_tw adm0_a3_in adm0_a3_np adm0_a3_pk 1 FJI <NA> FJI FJI FJI FJI FJI FJI FJI FJI FJI FJI 2 TZA <NA> TZA TZA TZA TZA TZA TZA TZA TZA TZA TZA adm0_a3_de adm0_a3_gb adm0_a3_br adm0_a3_il adm0_a3_ps adm0_a3_sa adm0_a3_eg adm0_a3_ma adm0_a3_pt adm0_a3_ar adm0_a3_jp 1 FJI FJI FJI FJI FJI FJI FJI FJI FJI FJI FJI 2 TZA TZA TZA TZA TZA TZA TZA TZA TZA TZA TZA adm0_a3_ko adm0_a3_vn adm0_a3_tr adm0_a3_id adm0_a3_pl adm0_a3_gr adm0_a3_it adm0_a3_nl adm0_a3_se adm0_a3_bd adm0_a3_ua 1 FJI FJI FJI FJI FJI FJI FJI FJI FJI FJI FJI 2 TZA TZA TZA TZA TZA TZA TZA TZA TZA TZA TZA adm0_a3_un adm0_a3_wb continent region_un subregion region_wb name_len long_len abbrev_len tiny homepart 1 -99 -99 Oceania Oceania Melanesia East Asia & Pacific 4 4 4 -99 1 2 -99 -99 Africa Africa Eastern Africa Sub-Saharan Africa 8 8 5 -99 1 min_zoom min_label max_label label_x label_y ne_id wikidataid name_ar name_bn name_de name_en name_es name_fa 1 0 3 8 177.97543 -17.826099 1159320625 Q712 فيجي ফিজি Fidschi Fiji Fiyi فیجی 2 0 3 8 34.95918 -6.051866 1159321337 Q924 تنزانيا তানজানিয়া Tansania Tanzania Tanzania تانزانیا name_fr name_el name_he name_hi name_hu name_id name_it name_ja name_ko name_nl name_pl name_pt 1 Fidji Φίτζι פיג'י फ़िजी Fidzsi-szigetek Fiji Figi フィジー 피지 Fiji Fidżi Fiji 2 Tanzanie Τανζανία טנזניה तंज़ानिया Tanzánia Tanzania Tanzania タンザニア 탄자니아 Tanzania Tanzania Tanzânia name_ru name_sv name_tr name_uk name_ur name_vi name_zh name_zht fclass_iso tlc_diff fclass_tlc 1 Фиджи Fiji Fiji Фіджі فجی Fiji 斐济 斐濟 Admin-0 country <NA> Admin-0 country 2 Танзания Tanzania Tanzanya Танзанія تنزانیہ Tanzania 坦桑尼亚 坦尚尼亞 Admin-0 country <NA> Admin-0 country fclass_us fclass_fr fclass_ru fclass_es fclass_cn fclass_tw fclass_in fclass_np fclass_pk fclass_de fclass_gb fclass_br 1 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> 2 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> fclass_il fclass_ps fclass_sa fclass_eg fclass_ma fclass_pt fclass_ar fclass_jp fclass_ko fclass_vn fclass_tr fclass_id 1 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> 2 <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> fclass_pl fclass_gr fclass_it fclass_nl fclass_se fclass_bd fclass_ua geometry 1 <NA> <NA> <NA> <NA> <NA> <NA> <NA> MULTIPOLYGON (((180 -16.067... 2 <NA> <NA> <NA> <NA> <NA> <NA> <NA> MULTIPOLYGON (((33.90371 -0... #df_countries에는 id가 있습니다. df_map에는 id가 없습니다.그래서 오류가 납니다. 도와주세요!!나머지는 다 잘됩니다. 아래코드도 long객체를 찾을수없다며 안되기는 하는데 딱히 필요없을것같아서 생략했으나, 25:19초에 다시 이코드를 가져와서 쓰네요. 생략하면 안될것같네요. 이것도 뭐가 문제인지 모르겠습니다.ggplot(data=df_map, aes(x=long, y=lat,group=group))+ geom_polygon()
-
미해결그림으로 배우는 자바, 파트1: 입문!
자바 입문 강의 요건
재거 HTML/CSS강의를 안듣고 자바 입문 강의를 들으려 하는데 괜찮을까요? 사실 데이터 쪽으로 진로를 잡으려고 해서 자바는 필요할 것 같은데 HTML/CSS는 상관이 없는것 같아서 안듣긴 했는데 이 강의를 학습하는데 문제는 없는건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-F 질문 있습니다!
http://boj.kr/7687fd79d7f14a06876f12bc7d02e5a7안녕하세요 선생님 제 생각이 틀린 건 분명한데 어떻게 틀렸는지 이해가 잘 안됩니다 if(s[i] >= 'A' && s[i] <= 'Z'){ s[i] = s[i] + 13; if(s[i] > 'Z') s[i] = s[i] - 26; }else if(s[i] >= 'a' && s[i] <= 'z'){ s[i] = s[i] + 13; if(s[i] > 'z') s[i] = s[i] - 26; }아마 이부분에서 논리적인 오류가 있는것 같은데 잘 모르겠습니다제 생각에 13을 먼저 더하고 그 이후에 범위를 벗어난 부분만 26을 빼면 될거라 생각했는데 이게 왜 안되는지 이해가 잘 안됩니다. ps. 새해 복 많이 받으세요
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
주문중복방지를 위한 리다이렉션
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]307같은 경우 리다이렉트를 하여도 요청메서드와 본문이 동일하니 새로고침을 통한 주문중복방지를 위해 303을 '반드시' 사용해야 하는 것일까요?
-
해결됨[취업폭격기] 공공기관 전산직(IT) 취업 준비를 위한 정규과정 (기초~고급)
권한요청 드립니다.
제로미니님 안녕하세요. 구글폼으로 권한요청 드렸습니다. 확인 부탁드립니다.감사합니다.
-
미해결스프링 핵심 원리 - 기본편
Provider 사용
package javax.inject; public interface Provider { T get(); } @Autowired private Provider<PrototypeBean> provider; public int logic() { PrototypeBean prototypeBean = provider.get();} Provider 인터페이스 사용시 위처럼 인터페이스를 구현한 구현체 없이도 사용이 가능한가요?
-
해결됨[R을 R려줘] R 데이터 시각화
데이터 제공 종료했다고합니다.. 마지막 강의 듣고싶은데, 데이터를 받을 수가 없어요..어찌해야되나요
https://data.seoul.go.kr/dataList/OA-20470/F/1/datasetView.do서울시 홈페이지에 가도 없는것같습니다.너무 아쉽습니다설령 찾더라도 이전과 내용이 너무 많이 달라서 적용이 안되는게 너무 많아서 어렵더라구요.백신데이터 접종 시각화 강의 마저도 @이 안되길래r버젼을 다운그레이드하고, rstudio를 재설치해도 안되서 답답하더라구요.. 이번 공공데이터 강의도 현재버젼과 맞지 않은 부분이 있을까봐 걱정됩니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
AI 답변에 대한 재문의
아!.. 제가 궁금한것은/addForm()에서 생성된 빈 객체가1. addITem 메소드 호출시 바인딩 되는 객체와 동일한 객체인지 와editForm 메소드에서 findById 로 찾는 객체와같은 객체인지 궁금합니다!또한,Item 객체가 단순히 자바빈으로 등록되어있는것이지, 싱글톤은 아니죠?( 꼬리에 꼬리를 무는생각으로 이어진고민입니다.).aI 답변을 받았는데 아직 이해가 잘 가지 않아서 재질문 드립니다!
-
미해결스프링 배치
spring batch 5
spring batch5에서 더이상 JobBuilderFactory와 StepBuilderFactory를 지원하지 않아 스프링 가이드를 참고해 JobBuilder와 StepBuilder로 해보고 있는데 아무래도 수업내용과는 코드차이가 있어 어려움이 있는데요, 혹시 spring batch5에 호환되는 버젼의 코드 업데이트 예정이 있으신지 여쭈어봅니다!
-
미해결화이트해커가 되기 위한 8가지 웹 해킹 기술
sudo beef-xss 하면 파이어폭스와 연동이 안됩니다
어떻게 해결할 수 있을까요 ? 자꾸 Unable to connect라 합니다
-
미해결홍정모의 따라하며 배우는 C언어
운영체제 구성 그림에서 입출력 장치의 위치
안녕하세요. "0.3.운영체제가 해주는 일들" 설명을 듣다가 의문점이 생겨서 질문 남깁니다. <그림1>위의 그림을 보면서 저는 사용자가 하드웨어 자원을 사용하기 위해서는 직접 하드웨어를 사용할 수 없기에, 응용 프로그램을 실행하고 응용 프로그램은 커널을 통해 하드웨어 자원을 사용하는 것이라고 이해했습니다. CPU, 메모리, 보조기억 장치는 직접 사용자와 상호작용을 할 수 없다는 것은 이해가 되지만(직접 손으로 조작하여 사용할 수 없기 때문), 입출력 장치는 사용자와 직접 상호작용 한다고 생각했습니다. 왜냐하면 직관적으로 생각을 해보면, 프로그램을 실행 할 때 "마우스로 응용프로그램을 클릭 or 키보드로 명령어 입력(입출력 장치 사용)-> 응용 프로그램 실행-> Kernel을 통한 하드웨어 사용(CPU, 메모리, 보조 기억장치)" 과 같은 과정이 일어나기 때문에, 입출력 장치는 사용자와 제일 먼저 상호작용 하는 것 아닌가? 라는 생각을 했습니다. <그림2>궁금증을 해결하기 위해 검색을 해보니, 다음과 같은 그림을 찾을 수 있었습니다. 위 그림을 보면 키보드 마우스 등등 입출력 장치는 사용자와 가장 먼저 상호작용을 하는 것처럼 나와있고 이는 직관적으로 이해가 됩니다. 요약해서 질문을 드리면 입출력 장치는 사용자와 가장 먼저 상호작용 하는 하드웨어임에도 불구하고 왜 <그림1>에서는 사용자와 가장 멀리 떨어진 부분에 위치하는 지 궁금합니다. 긴 글 읽어주셔서 감사드립니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
COPY --from=builder /usr/src.\/app/build 문 not found 에러 발생
안녕하세요 수업내용 중 운영환경 도케 이미지를 위한 Dockerfile 작성하기 에서 ***********************************************FROM node:alpine as builder WORKDIR /usr/src/app COPY package.json ./ RUN npm install COPY ./ ./ CMD ["npm", "run", "build"] FROM nginx COPY --from=builder /usr/src/app/build /usr/share/nginx/html***********************************************위 와 같이 작성하였더니 아래 이미지와 같은 에러가 확인되었습니다. > [stage-1 2/2] COPY --from=builder /usr/src/app/build /usr/share/nginx/html:------Dockerfile:9-------------------- 8 | FROM nginx 9 | >>> COPY --from=builder /usr/src/app/build /usr/share/nginx/html--------------------ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref 800cbe25-2c37-4cd8-a955-7b83c9ca7ed6::qsbcjgd4h6b5x2kfg8hzb8sb0: "/usr/src/app/build": not found*********************************************** >>> 경로를 생성하지 못하여 발생하는 것처럼 느껴져 RUN make -p 명령어를 사용하여 not found 되고 있다는 경로를 직접 생성해주고 나니 정상 build 되기는 하였습니다만.이렇게 하면 혹시 덮어쓰기 되지 않을까해서 문의를 별도로 넣습니다.FROM node:alpine as builder WORKDIR /usr/src/app RUN mkdir -p /usr/src/app/build COPY package.json ./ RUN npm install COPY ./ ./ CMD ["npm", "run", "build"] FROM nginx COPY --from=builder /usr/src/app/build /usr/share/nginx/html
-
미해결
tdd에 대한 질문 있습니다
안녕하세요. tdd에 대해 배운지 얼마 안된 학생입니다.실패하는 코드를 짠다 -> 돌아가는 코드를 만든다 -> 리펙터링을 한다까지는 이해가 되고 이렇게 코드를 작성함으로써 프로그램이 더 견고해지는 느낌은 마음에 듭니다. 하지만 나중에 요구사항이 바뀔 시 테스트코드도 싹 다 엎어버려야하는 것 아닌가요?꼼꼼하게 테스트 코드를 작성했는데 요구사항이 바뀌면 수정하는데 시간이 두 배 더 드는게 아닐까 싶어서요.메서드 명이나 필드명을 바꾸고 싶을 땐 테스트코드에 있는것들도 다 바꿔야 하는거잖아요.이런건 어쩔 수 없는 부분인가요? 소위 말하는 테스트 코드가 "깨진다"에 대한 노하우가 있는지 궁금합니다.
-
미해결Next + React Query로 SNS 서비스 만들기
children 오류??
(afterLogin)의 layout.tsx에서 35번째 주석부분 children이요여기 children에 각 폴더 page.tsx, layout.tsx이 들어가는건가요??여기 35번 줄 children 주석풀고 실행해보면이런 오류 뜨는데 왜 이런지 알 수 있을까요??
-
해결됨토비의 스프링 부트 - 이해와 원리
자동 구성 정보 클래스를 작성한다면
@Configuration(proxyBeanMethods = false) static class MyConfig { private final Common common; public MyConfig(Common common) { this.common = common; } @Bean public Bean1 bean1() { System.out.println("bean1 생성자"); return new Bean1(common); } @Bean public Bean2 bean2() { System.out.println("bean2 생성자"); return new Bean2(common); } } @Configuration(proxyBeanMethods = false) static class MyCommonConfig { @Bean public Common common() { return new Common(); } }과@Configuration(proxyBeanMethods = false) static class MyConfig { @Autowired private Common common; public MyConfig() { } @Bean public Bean1 bean1() { System.out.println("bean1 생성자"); return new Bean1(common); } @Bean public Bean2 bean2() { System.out.println("bean2 생성자"); return new Bean2(common); } @Bean public Common common() { return new Common(); } }빈 구성 정보를 프록시 객체로 생성하지 않는다는 대안을 코드로 작성해보면 별도의 구성 정보를 사용하는 방식과내부에서 필드 주입으로 초기화 하는 방식이 생각났습니다. 별도의 구성정보를 사용하면 어떤 클래스를 의존하는지 생성자를 보고 확인할 수 있다는 장점과 테스트 코드를 작성할때 더 편할거라 생각이 들고,밑에 방식은 Common이라는 클래스가 MyConfig 에서만 사용된다면 관리하기도 편할거라 생각이 들었습니다. 그리고 설정 정보 클래스니까 굳이 생성자로 초기화를 하지 않아도 되지 않을까 라는 생각도 들었습니다. 강사님께서 Config 클래스도 테스트를 해봐야한다고 말씀해주셨는데 이런 경우라면 상황에 따라 선택해야하는 부분인가요 ?아니면 설정 정보도 환경에 따라 다를 경우가 있느니까 별도로 분리하는게 나을까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
postmapping 에서의 모델바인딩 객체
폼에서 작성한 데이터들이 @PostMapping("/add)로 넘어가서 @ModelAttribute 를 통해 item 객체에요청 파라미터를 프로퍼티 접근법으로 값을 세팅하고 모델에 item 객체를 item 의 이름으로 바인딩 되는것이 맞죠?맞다면, @ModelAttribute 를 통해 바인딩 되는 객체는addForm 메소드에서 만들어주어서 타임리프에 활용가능하게 넘겨주었던 그 item 객체인가요?(같은 객체를 재사용하는건지) ,아니면 새로운 객체를 또 만들어서 새로운객체에 값을 세팅해주고 모델에 바인딩을 해주는것인지 궁금합니다 수정폼에서 Item item = itemRepository.findById(itemId); 에서 찾는 item (entity?) 도 addForm 에서 새로 생성했던던 그 객체인것이죠?
-
미해결홍정모의 따라하며 배우는 C언어
*str 의 값
안녕하세요 교수님께서 10분 30초 쯤에 작성하시던 코드에서while (*str)이라고 작성하신 부분이 있는데요, 이 부분은 *str이 0이 아니면 while문을 진행시킵니다.또한 강의 중while (*str)와 while (*str != '\0')는 같은 역할은 한다고 말씀하신 바가 있습니다. str주소를 하나씩 옮겨가면서 읽을 값은 차례대로 1, 2, 3, 4, 5, \0 인데 \0과 0은 다릅니다.근데 어떻게 *str != 0로 처리돼서 while문이 진행된건지 궁금합니다.
-
해결됨
H2 설정삭제시초기화 방법
삭제해서 재설치해도똑같아요 복귀하는방법좀알려주세요 ㅠㅠ윈도우기준
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ResponseBody 어노테이션을 쓰는 메소드와 안 쓰는 메소드 차이가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 강의를 듣다가 헷갈리는 부분이 있어서 질문 드립니다. @ResponseBody를 메소드에 붙이고 안 붙히는 기준이 궁금합니다. 일단 제가 이해한 @ResponseBody는 뷰를 따로 사용하지 않고 HTTP 응답 본문에 메소드가 리턴한 정보(원시 데이터 또는 객체=json)를 입력해서 응답하는 것으로 이해했습니다. 근데 아래 사진의 빨간 밑줄 친 메서드들을 보면 뷰의 논리적 이름이 아닌 ResponseEntity 객체를 리턴하는 것으로 보여지고 객체를 리턴하면 HTTP 응답 본문에 입력하려면 @ResponseBody 어노테이션이 필요한 것이 아닌가 궁금합니다. 그런데 ResponseEntity의 코드를 보니까 HttpEntity를 상속 받던데 ResponseEntity가 HTTP 응답 그 자체라서 @ResponseBody를 사용하지 않는 것인가요?답변 주시면 정말 감사하겠습니다.