묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
수업노트 관련 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.이번 수업노트의 아래부분에서 궁금한점이 있어서 질문드립니다.코드가 수정되었습니다.void go(int here){ if(here == n){라고 언급해주셨는데, 이 부분이만약 n이 3인 상황에 here == n 코드 기준으로위 사진 처럼go(1) -> go(2) -> go(3) 까지 호출되어서 go(3) 총 4번 호출되게 되는데요, 이러면 1번째 행과 2번째 행에대한 반전/비반전 경우의 수가 2*2 = 4만이 고려되었다고 생각합니다. 따라서 기존 코드인 here == n +1 을 기준으로 본다면go(1) -> go(2) -> go(3) -> go(4) 까지 호출되어서 go(4)가 총8번 호출되게 되는데요, 이래야 1,2,3(n = 3)행의 비반전/반전의 경우의 수인 2*2*2=8가지의 경우의 수가 고려된것이 아닌지 궁금합니다..
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
nodebird 프로필 수정 기능 구현 시, 에러가 발생했을 때 에러처리미들웨어에서 res.render('error')가 안되는 상황
프로필 수정 기능을 구현하기 위한 profileUpdate.html{% extends 'layout.html' %} {% block content %} <div class="timeline"> <form id="profile-update-form"> <!-- <div class="input-group"> <label for="join-email">이메일</label> <input id="join-email" type="email" name="email" /> </div> --> <div class="input-group"> <label for="join-nick">닉네임</label> <input id="join-nick" type="text" name="nick" /> </div> <div class="input-group"> <label for="join-password">비밀번호</label> <input id="join-password" type="password" name="password" /> </div> <button id="join-btn" type="submit" class="btn">수정</button> </form> </div> {% endblock %} {% block script %} <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> window.onload = () => { const errorParam = new URL(location.href).searchParams.get('error'); if (errorParam) { alert(errorParam); } }; if (document.getElementById('profile-update-form')) { document.addEventListener('submit', async (event) => { event.preventDefault(); const formData = new FormData(event.target); const config = { headers: { 'content-type': 'application/json', }, }; axios .put('/profile/update', formData, config) .then((res) => { alert('프로필 정보가 수정되었습니다.'); window.location.href = '/profile'; }) .catch((error) => { alert(error); }); }); } </script> {% endblock %} 그리고 controller/page.jsexports.renderProfileUpdate = (req, res, next) => { res.render('profileUpdate', { title: '내 정보 수정 - NodeBird' }); }; exports.profileUpdate = async (req, res, next) => { try { const { nick, password } = req.body; const id = req.user.id; const exUser = await User.findOne({ where: { id } }); if (!exUser) { throw new Error('존재하지 않는 사용자입니다.'); // res.status(404).send('no user'); } const sameNickUser = await User.findOne({ where: { nick, id: { [Op.ne]: exUser.id, }, }, }); if (sameNickUser) { throw new Error('중복된 닉네임입니다.'); // res.status(501).send('중복된 닉네임입니다.'); } const hash = await bcrypt.hash(password, 12); exUser.set({ nick, password: hash, }); await exUser.save(); res.status(201).send(); } catch (error) { console.error(error); next(error); } };app.js의 에러처리 미들웨어app.use((err, req, res, next) => { // 404 다음은 에러처리 미들웨어 console.error('에러는 ', err.message); res.locals.message = err.message; res.locals.error = process.env.NODE_ENV !== 'production' ? err : {}; // 보안상 위험(오히려 배포 시 사용자 화면에 에러를 숨김) // 에러를 로깅 서비스에 넘김 res.status(err.status | 500); res.render('error'); // views/error.html });일부러 중복된 닉네임을 넣어 라우터에서 에러를 발생시켰을 때, 에러처리미들웨어의 console.error('에러는 ', err.message); 부분에서 "Error: 중복된 닉네임입니다. at exports.profileUpdate (/nodestudy/nodebird/controllers/page.js:31:13) at process.processTicksAndRejections (node:internal/process/task_queues:95:5)에러는 중복된 닉네임입니다.PUT /profile/update 500 10.568 ms - 1862" 로 에러 메시지가 정상적으로 찍히는 것을 확인하였습니다.preview 탭에선 정상적으로 나오는 것 같은데, 실제 브라우저 화면에선 위와 같이 뜨면서 제가 원하는 에러 메시지('중복된 닉네임입니다')가 alert 창에 뜨지 않으며, error.html이 렌더링도 되지 않고 있습니다. 구글링해봐도 제가 잘 못한건지 이유를 못찾겠습니다🥲 제가 뭘 놓친걸까요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
typeof 와 GetType
DataTransformer.cs 에서ParseExcelDataToList 함수 안에 typeof와 GetType을 혼용해서 사용하시는 것을 보고 궁금해서 찾아보다가 질문드립니다. typeof의 경우에 컴파일 타임에 형식의 메타 데이터를 참고해서 Type 형식을 뱉어주고GetType의 경우에 인스턴스의 형식을 런타임에 가져오는 경우 사용하는 걸로 알고 있는데요.위 함수에서 typeof(LoaderData)를 통해 Type을 가져오더라구요. 이 경우에 제네릭 타입 매개변수는 컴파일 시점에 정확한 형식을 모르기 때문에 GetType을 사용하는 것이 적절하지 않을까요?
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
태그 관련 질문
imageview나 layout 등 태그를 만들면 자동으로 닫히는 태그가 안생기는데 어떻게 하신건가요???
-
해결됨개발 입문을 위한 실무자가 알려주는 Spring Boot
Constants 가 맞을거 같습니다.
상수들을 모아 놓은 클래스이므로 Constants 가 맞는 이름일 거 같습니다.
-
미해결비트코인 선물거래 자동매매 시스템(저자직강)
선생님 크롤링 관련하여 문의드립니다!
선생님, requests.get 하여 크롤링을 하려 하는데 403 error가 계속 뜹니다. headers 부분을 추가하여 했는데도 계속 오류가 뜨는데 혹시 무엇이 문제일까요? API로 받아와야하나요 이젠?
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
오리엔테이션
선생님4:20 에서 나오는 빨간 버튼?이 안 나와서 타이핑으로 진행했는데 나오게 하는 방법이 있나요???
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
15강 rest 인증 성공 핸들러 관련 문의
안녕하세요. 선생님 학습중에 에러가 발생하여 문의드립니다. 인증 성공 핸들러에 onAuthenticationSuccess 메소드로 넘어 오는데 authentication.getPrincipal() 의 타입이 java.util.ImmutableCollections$List12 로 와서 AccountDto로 cast가 안되는 에러가 발생하는데 원인을 모르겠습니다. ㅠㅠ 에러 내용java.lang.ClassCastException: class java.util.ImmutableCollections$List12cannot be cast to classcom.test.security.domain.dto.AccountDto (java.util.ImmutableCollections$List12 is in module java.base of loader 'bootstrap'; com.test.security.domain.dto.AccountDto is in unnamed module of loader 'app') 에러 발생한 부분AccountDto accountDto = (AccountDto) authentication.getPrincipal();
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
로드맵에대한 질문입니다.
안녕하세요 본강의의 로드맵에관해서 질문있습니try catch에 관해서 좀 더 공부해보고싶은데현재 로드맵과 수강내용을 확인해보았는try / catch 구문에 대한 내용을 다루고있는 섹션은 없는것으로 보입니다.강의 과정에 해당부분도 어느정도 다루는지 궁굼합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
7:40에서 언급하신 색상이 날아가는 문제 이해를 못하겠습니다
ConsoleColor prevColor = Console.ForegroundColor; Console.ForegroundColor = prevColor; 언급하신대로 색상이 날라가는 문제를 해결하기 위해 이 두 줄을 추가하는 이유를 이해 못했습니다
-
해결됨김영한의 실전 자바 - 중급 2편
Comparator질문입니다
public class SortMain2 { public static void main(String[] args) { Integer[] arr = {3,2,1}; System.out.println(Arrays.toString(arr)); System.out.println("Comparator 비교"); Arrays.sort(arr,new AscComparator()); System.out.println("AscComparator:"+Arrays.toString(arr)); } } public class AscComparator implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { if(o1 > o2){ return 1; } else if (o1 == o2) { return 0; }else return -1; } }SortMain2함수에서 Arrays.sort(arr,new AscComparator()); 부분에서 new AscComapator()로 객체만 생성했는데 어떻게 compare함수까지 호출되서 비교를 할수있는거죠?이해가안갑니다...함수 호출을안해는데..
-
미해결
이런 오류가 나는데 어떻게 해결해야 하나요?
오후 9:50:54: 실행 중 ':ServletApplication.main()'... :: Spring Boot :: (v3.3.3)2024-08-29T21:50:57.956+09:00 INFO 7124 --- [servlet] [ main] hello.servlet.ServletApplication : Starting ServletApplication using Java 17.0.11 with PID 7124 (C:\Spring_Study\servlet\build\classes\java\main started by choi in C:\Spring_Study\servlet)2024-08-29T21:50:57.963+09:00 INFO 7124 --- [servlet] [ main] hello.servlet.ServletApplication : No active profile set, falling back to 1 default profile: "default"2024-08-29T21:50:59.965+09:00 INFO 7124 --- [servlet] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http)2024-08-29T21:50:59.995+09:00 INFO 7124 --- [servlet] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]2024-08-29T21:50:59.995+09:00 INFO 7124 --- [servlet] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.28]2024-08-29T21:51:00.132+09:00 INFO 7124 --- [servlet] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext2024-08-29T21:51:00.134+09:00 INFO 7124 --- [servlet] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2057 ms2024-08-29T21:51:00.201+09:00 ERROR 7124 --- [servlet] [ main] o.s.b.web.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: java.lang.IllegalArgumentException. Message: Invalid <url-pattern> [response-json] in servlet mapping2024-08-29T21:51:00.274+09:00 INFO 7124 --- [servlet] [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]2024-08-29T21:51:00.288+09:00 WARN 7124 --- [servlet] [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start web server2024-08-29T21:51:00.305+09:00 INFO 7124 --- [servlet] [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2024-08-29T21:51:00.345+09:00 ERROR 7124 --- [servlet] [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.context.ApplicationContextException: Unable to start web server at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:165) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:619) ~[spring-context-6.1.12.jar:6.1.12] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.3.jar:3.3.3] at hello.servlet.ServletApplication.main(ServletApplication.java:12) ~[main/:na]Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:147) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.<init>(TomcatWebServer.java:107) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getTomcatWebServer(TomcatServletWebServerFactory.java:516) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory.getWebServer(TomcatServletWebServerFactory.java:222) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:188) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:162) ~[spring-boot-3.3.3.jar:3.3.3] ... 8 common frames omittedCaused by: java.lang.IllegalArgumentException: Invalid <url-pattern> [response-json] in servlet mapping at org.apache.catalina.core.StandardContext.addServletMappingDecoded(StandardContext.java:2840) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.Context.addServletMappingDecoded(Context.java:882) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.core.ApplicationServletRegistration.addMapping(ApplicationServletRegistration.java:188) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.springframework.boot.web.servlet.ServletRegistrationBean.configure(ServletRegistrationBean.java:194) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.web.servlet.ServletRegistrationBean.configure(ServletRegistrationBean.java:51) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.web.servlet.DynamicRegistrationBean.register(DynamicRegistrationBean.java:124) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.web.servlet.RegistrationBean.onStartup(RegistrationBean.java:52) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:241) ~[spring-boot-3.3.3.jar:3.3.3] at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:52) ~[spring-boot-3.3.3.jar:3.3.3] at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4414) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) ~[na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:772) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1203) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1193) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) ~[na:na] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:749) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:203) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.core.StandardService.startInternal(StandardService.java:415) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:874) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.apache.catalina.startup.Tomcat.start(Tomcat.java:437) ~[tomcat-embed-core-10.1.28.jar:10.1.28] at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.initialize(TomcatWebServer.java:128) ~[spring-boot-3.3.3.jar:3.3.3] ... 13 common frames omitted> Task :ServletApplication.main() FAILEDDeprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.8/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.3 actionable tasks: 1 executed, 2 up-to-dateFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':ServletApplication.main()'.> Process 'command 'C:\Users\choik\.jdks\graalvm-jdk-17.0.11\bin\java.exe'' finished with non-zero exit value 1* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.BUILD FAILED in 5s오후 9:51:00: 실행이 완료되었습니다 ':ServletApplication.main()'.
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
Value 값을 대문자로 꼭해야하나요?
Value 값을 대문자로 꼭 표시하지 않아도 괜찮을까요? 개발자와 네이밍에 관련해 카멜표기를 하자고 했었는데 컴포넌트 또한 카멜표기로 해야하는지 궁금합니다
-
미해결Airflow 마스터 클래스
dag_seoul_api dag은 실행이 되는데 파일이 저장이 안되네요
json으로 데이터로 잘불러왓고 dag도 성공적으로 마쳤다고 했는데 정작 files 폴더에는 저장이 안되어 있습니다.그래서 docker inspect로 mount 속성을 보니{ "Type": "bind", "Source": "/home/jspark9703/airflow/files", "Destination": "/opt/airflow/files", "Mode": "rw", "RW": true, "Propagation": "rprivate" }propagation이 rprivate으로 되있더군요 아마 이 속성때문에 그런거같은데... volumes 속성을 바꾸는 방법은 없을까요? 아님 다른 문제가 있는 것일까요?
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
MEM/WB 질문 있습니다
안녕하세요! MEM/WB 레지스터에 대해, data memory에서 나온 값과 ALU에서 나온 값의 타이밍에 대해 궁금한 점 있어서 질문 드립니다. EX/MEM 레지스터에서 나온 ALU 연산 결과는 다음 사이클에 바로 MEM/WB 레지스터로 이동하는 것은 이해했습니다.하지만, Data memory에서 값을 가져오는 경우, EX/MEM에서 Address를 받고 다음 사이클에서 값이 나오고, 그 다음 사이클에 해당 값이 MEM/WB로 이동하여 두 사이클이 걸린다고 생각했습니다.이러면 data load를 하는 경우는 5 cycle이 아닌 6 cycle이 소모된다고 생각했는데, 이렇게 생각하는 것이 맞는지 궁금합니다. 맞다면, Instruction 별로 소모되는 사이클이 차이가 생길 수도 있는지 궁금합니다.질문 읽어주셔서 감사합니다!
-
미해결
Finding the Best Options to Study in USA?
If you're looking for the best way to study in USA, you're not alone. Every year, thousands of international students aim to experience the high-quality education and vibrant campus life that American universities offer. But finding the right guidance can make a huge difference in ensuring your journey is smooth and successful.To get started, it's essential to choose the right course and university that align with your goals. The process can be overwhelming, from understanding admission requirements to preparing for standardized tests like the SAT, GRE, or TOEFL. It's crucial to stay informed about visa processes, scholarship opportunities, and accommodation options to ensure a hassle-free experience.Many students rely on professional guidance to streamline their applications and navigate the complexities of studying abroad. With the right support, you can secure a spot in top universities and make the most out of your decision to study in USA.
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
특정 범위 서체 변경하기 (글자속성변경하기)
안녕하세요? 조금씩 천천히 강의를 따라가고 있습니다 ^^ 글자속성 변경하기 챕터에서특정 범위의 서체 변경하기를 따라 해 보고 있는데요. 빈문서를 만들고,텍스트를 입력한 다음,블럭을 설정하고,charshape = True를 입력하고,실행시키면 화면에 나오는 것처럼 글자 속성이 변하지 않네요. 참고로 저는 Visual Studio Code로 작업을 하고 있습니다.추측으로는,열어 놓은 한글 파일에 접근할 수 있어야 하고블럭설정한 부분을 읽어야 하는 것 같은데,이 코드는 빠져 있는 건가요?멋진 강의 감사합니다! ^^
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
retrofit을 사용한 통신 시 content type 관련하여 문의
안녕하세요. 강의에 없는 내용이지만, 검색을 며칠 째 하고 있으나 해결방법을 못 찾아서 이렇게 문의드립니다. 양해부탁드립니다.. flutter에서 retrofit을 사용하여 multipartforamdata 형식의 api를 호출할 때, application/json으로 보내야 하는 객체는 content type을 어떻게 지정해주어야 하는 걸까요? springBoot와 flutter로 개발 진행 중이고, api와 flutter는 각각 아래와 같이 작성하였습니다.// api @PostMapping(path = "", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public void temp(@RequestPart TempReq, @RequestPart List<MultipartFile> files) { // 생략 } // flutter에서 api 호출부 @POST('') @MultiPart() Future<void> temp(@Part() TempReq req, @Part() List<MultipartFile> files);flutter에서 api 호출 시 content type 'application/octet-stream' not supported 에러가 발생합니다.postman이나 swagger로 테스트 했을 땐 정상적으로 동작하는 걸 보면 api 문제는 아닌듯합니다.flutter에서 호출할 때도 files는 잘 들어오는데, TempReq 객체를 받을 때가 문제인 듯합니다. @Part 안에 content type을 application/json으로 지정해보았는데도 동일한 에러가 발생합니다.
-
미해결Apple 출신 개발자의 SwiftUI Basic Part 1 기초튼튼
마지막 생성자 코드에서 enum이 안쓰이고 있는거 같아요
enum CarBrand 다 정의되고나서는마지막 생성자 코드가 init(country: String, brand: CarBrand) { self.country = country switch brand { case .Hyundai: self.title = "Hyundai" self.backgroundColor = Color.yellow case .Tesla: self.title = "Tesla" self.backgroundColor = Color.pink }}이렇게 switch 구문 패턴매칭으로 쓰는게 enum 타입을 활용해야 하지 않나요?강의에서 마지막 코드는 생성자에서 country 국가명을 if문으로 조건 분기해서 뷰를 그리고 있습니다 (brand 파라미터가 뷰를 그리는데 안쓰이고 있어요)
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
강의영상 5분 7초 EAGER 패치 전략
비슷한 게시글을 봐도 이해가 잘 가지 않아서 재차 질문 드립니다제가 이해하는 상황이 맞는지 고견 부탁드립니다1. fetch = EAGER 쿼리가 두 번 실행이것이 프록시 강의영상에서 말씀하시는 (N+1) 문제인지 궁금합니다첫 번째 쿼리는em.flush(), em.clear() 실행되면 영속성 컨텍스트가 비워지고 이후 jpql 쿼리가 실행되면서 EAGER 패치 전략에 따라 Team도 함께 조회가 됩니다. 두 번째 쿼리는 영속성 컨텍스트가 비워졌고 EAGER 패치 전략으로 조회되어야 합니다. 실제 엔티티로 조회되어야 하는걸로 알고있습니다하지만 특정 시점에서 Team이 프록시로 로드 되었고 이후 프록시가 초기화되면서 다시 데이터베이스에서 조회하면서 발생한 쿼리로 생각이 듭니다