묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
format_sql 안됨
server: port: 80 spring: jpa: hibernate: ddl-auto: none properties: hibernate: # show_sql: true format_sql: true logging.level: org.hibernate.SQL: debug # org.hibernate.type: trace logging: level: org: hibernate: persister: entity: debug 디비연동은 잘해놨습니다. 그런데 로그가 정리가 안되네요..format_sql: true 이게 안먹는것같습니다.ㅠㅠ 버전은 2.6.0 인데 버전문제일까요?
-
미해결실전! 스프링 데이터 JPA
createQuery
public List<Member> findByPage(int age, int offset, int limit){ return em.createQuery("select m from Member m where m.age = :age order by m.username desc") .setParameter("age", age) .setFirstResult(offset) .setMaxResults(limit) .getResultList(); }em.createQuery("select m from Member m where m.age = :age order by m.username desc", Member.class)아래처럼 끝에 반환하는 클래스 타입을 적어줘야 된다고 기억을 하는데 위에 코드 처럼 적어주지 않아도 정상적으로 작동을 하더라구요? 반면에public long totalCount(int age){ return em.createQuery("select count(m) from Member m where m.age = :age") .setParameter("age", age) .getSingleResult(); }totalCount 의 경우 클래스 타입을 안적어주면 바로 빤갈줄이 그어지는데 반환하는 클래스 타입이 생략이 가능한 경우도 있는건가요??
-
미해결배달앱 클론코딩 [with React Native]
Apple Developer에서 fcm설정에 관하여 질문있습니다.
안녕하세요. 제로초님. 제가 강의에서 제가 이해한 것이 맞는지 헷갈려서 질문드립니다..(우선 keys는 하나로 여러 앱에 사용할 수 있는 것은 이해했습니다.)강의에서는 fcm 설정을 위해 p12(인증서 방식)이 아닌 p8(인증키 방식)으로 하고 있습니다.강의 과정에서는Apple developer Identifiers 탭에서 해당앱을 누르고 push notification에서 edit을 누른 후 Development SSL Certificate와 Production SSL Certificate 두개를 만든 후 다운로드하면 Apple developer에서 Certificates 탭에 방금 만든 push services와 Sandbox push services 두개의 Certificates가 만들어진 것을 볼 수 있습니다. 그런데 만약 A라는 앱과 B라는 앱 두개모두 fcm을 사용한다고 가정할 때 Identifiers각각 위의 과정을 거쳐야 한다면 push services(2개)와 Sandbox push services(2개) 총 4개의 Certificates가 생성될 텐데 이런 방식으로 하면 되는 것인지 궁금합니다. 즉 Certificates에서 push services는 앱에 따라서 여러개를 만들어야 하는것인지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[투포인터 유형] 백준 3273 두 수의 합 질문
<< 코드는 하단에 링크로 첨부하였습니다. >>안녕하십니까 큰돌 선생님백준 3273 두 수의 합 문제를 30분 여유 시간 안으로 생각하고 먼저 풀어보려고 했는데 틀렸다고 나와서 질문 드리려 합니다.문제에서 보여준 예제 경우는 정답이 맞게 나왔지만 3% 쯤에서 틀렸다고 나옵니다. 그런데 왜 틀렸는지 모르겠습니다.수열을 정렬하고, 오른쪽 j인덱스를 줄여나가면서 왼쪽 i의 0번째 부터 탐색하면서 x와 값이 같으면 cnt++ 하는 로직을 떠올리고 구현했습니다.선생님이 작성하신 코드의 로직과 어떤 차이가 있는 것인지 파악을 못해서 틀린 것 같습니다. 제 코드를 봐주시고 피드백 주시면 감사하겠습니다.Q1. 위에서 설명한 저의 로직이 어떤 부분에서 부족한가요?Q2. 선생님의 코드와 비교해서 분석한다면 어떤 부분이 다른건가요?읽어주셔서 감사합니다..http://boj.kr/ee88cf1f8b544d1cb9dfb0617b018d9a PS. 선생님 덕분에 타기업 코테도 풀어볼 수 있었습니다. 쨔쓰!비록 면접도 전에 탈락했지만 자신감 얻고 쭉쭉가겠습니다. 이왕 이렇게 된 거 코테 마스터 하겠습니다... (대충 질문 폭격해서 괴롭힐 수 있다는 떡밥)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
10주완성에서 제일 어려운 문제 백준 난이도가 몇인가요?
혹시 플래티넘 문제도 있나요? 강의를 다 듣고 나면 골드 문제를 양치기를 해서 실버를 넘어 골드를 지나 언젠가 플레를 가고 싶은데 현실적으로 시간이 없어서 코테 기출을 많이 볼거같네요
-
해결됨자바 코딩테스트 - it 대기업 유제
블로그 문제 첨부 가능 여부
블로그에 학습한 내용을 올리고 싶은데문제 자료를 캡쳐해서 사용해도 괜찮나요??!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
상위커뮤니티 데이터 가져오기 undefined가 뜨네요
커뮤니티 리스트 ui생성 강의 부분에서 맨앞 내용에서 상위 커뮤니티 데이터를 가져오는 부분이const {data: topsubs} = useSWR<Sub[]>(address,fetcher) 부분 undefined가 나오네요 ㅠ 소스코드가 확인해서 오타도 확인해봤는데 원인을 찾지못했습니다. 혹시 짐작가는 부분이 있으시나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터 제한의 장점에 대한 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]- 필터 제한에서 필터에서 적절하지 않은 요청이라고 판단하면, 거기에서 끝을 낼 수 있다고 하셨는데, 이로 인한 장점이 서버 부하를 줄일 수 있는 걸로 이해해도 괜찮을까요?
-
미해결스프링 부트 - 핵심 원리와 활용
[intellij 무료버전]tomcat runner 실행 오류
안녕하세요 인프런 스프링 부트 수업을 듣는 학생입니다.다름이 아니라 intellij 무료버전을 사용하면서 수업을 듣고 있는데 tomcat runner를 실행하려고 하면 오류가 발생합니다. tomcat runner을 눌러도 저런 상태가 지속됩니다.tomcat runner을 재설치해도 같은 상황입니다.에러 내용을 찾아보니 위치 문제인것 같은데 해결 방안을 모르겠습니다.ㅠㅠplugin에 tomcat runner가 disable 상태라고 뜨는데 해결 방법이 있을까요??
-
미해결스프링 부트 - 핵심 원리와 활용
SEVERE: A child container failed during start LifecycleException: Failed to start component 해결방법
java -jar embed-0.0.1-SNAPSHOT.jar 시아래와 같이 에러가 발생하는 경우org.apache.catalina.core.ContainerBase startInternal SEVERE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@247bddad] at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:886) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:252) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:430) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:926) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.startup.Tomcat.start(Tomcat.java:485) at hello.embed.EmbedTomcatSpringMain.main(EmbedTomcatSpringMain.java:36) Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@247bddad] at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4829) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4962) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) ... 16 more Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\embed\build\libs\tomcat.8080\webapps\] is not valid at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:777) at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:734) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ... 25 moremain 클래스에 코드를 수정하면 정상적으로 에러가 발생하지 않습니다.public class EmbedTomcatSpringMain { public static void main(String[] args) throws LifecycleException, IOException { System.out.println("EmbedTomcatSpringMain.main"); // 톰캣 설정 // 톰캣 설정 Tomcat tomcat = new Tomcat(); ... // 스프링 MVC 디스패처 서블릿 생성, 스프링 컨테이너 연결 ... String docBase = Files.createTempDirectory("tomcat-basedir").toString(); // 디스패처 서블릿 등록 Context context = tomcat.addContext("", docBase); ... tomcat.start(); } } 참고)맥북 사용자가 아닌 윈도우 사용자이기 때문에윈도우에서 나타나는 에러를 공유드렸습니다.맥북은 따로 확인하지 못하기 때문에 공유한 부분에 대해 양해해주세요.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터 유즈케이스 관련해서 질문있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]- 강의 7분 정도에서 모든 고객의 요청 로그를 남기는 요구사항이 있다면 필터를 사용하라고 하셨는데, 위 요구사항의 예시로, 1개의 url 요청을 어떤 클라이언트가 1초에 수십번 요청하는 걸 감지하는 경우로 생각해도 괜찮을까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
127.0.0.1에서 연결을 거부했습니다.
사이트에 연결할 수 없음127.0.0.1에서 연결을 거부했습니다.다음 방법을 시도해 보세요.연결 확인프록시 및 방화벽 확인ERR_CONNECTION_REFUSED 그전에 연결 잘되다가 갑자기 이러는 이유가 멀까요..?
-
미해결스프링 부트 - 핵심 원리와 활용
NoClassDefFoundError가 아닌 UnsupportedClassVersionError가 뜨는 경우 해결방법
NoClassDefFoundError가 아닌 UnsupportedClassVersionError가 발생하는 경우 java 버전이 하위 버전인 경우일 때 나타나는 것을 확인했습니다.자바 17 버전으로 하셔야 강의처럼 NoClassDefFoundError가 나타납니다.아래는 8, 11 버전에 대한 에러를 확인해서 공유드립니다ㅎㅎError: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: hello/embed/EmbedTomcatSpringMain has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:756) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:468) at java.net.URLClassLoader.access$100(URLClassLoader.java:74) at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLClassLoader$1.run(URLClassLoader.java:363) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:362) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)위의 에러는 java8 버전일 때 나타나는 에러입니다.Error: LinkageError occurred while loading main class hello.embed.EmbedTomcatSpringMain java.lang.UnsupportedClassVersionError: hello/embed/EmbedTomcatSpringMain has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0위의 에러는 java11 버전일 때 나타나는 에러입니다. 프로젝트랑 환경변수가 java17로 되어 있어도 cmd나 터미널을 이용해서 자바버전을 확인하세요
-
미해결함수형 프로그래밍과 JavaScript ES6+ 응용편
질문있습니다!
안녕하세요. 질문 있어서 글 올립니다.만약 복잡한 reduce 함수 하나 대신 3개의 map과 간단한 reduce 함수로 분리한다면 전자는 반복을 한번만 하면 되고 후자는 반복을 총 4번 해야한다는 계산이 서는데 왜 성능상 차이가 없는 것인지 궁금합니다.스스로 찾아보려고 햇는데 실력이 부족한지 관련 내용을 찾지 못해 질문드립니다ㅠㅠ
-
미해결정혜경 판타스틱 자료구조 in C
음...
addfirst 랑 addlast 를 왜 나누는지 이해가 안됩니다.addlast 코드만 있어도 추가하는데는 문제가 없어보이는데...
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
형 변환 질문
숫자를 문자열로 바꿀때 String.valueOf(); / Integer.toString(); 이 두가지를 사용하여 알려주셧는데 퀴즈에서 String busNO = "1234"; 를 사용하니 1234가 문자열로 바뀌었더라구요. (sout(busNo + 10)을 입력하니 123410이 나왔습니다.)위에서 알려주신 두가지 방법과 퀴즈에 나온 방법이 무슨 차이가 있을까요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
형변환 후반전 질문
93과 98.8을 각각 문자열로 변환한 다음에 저희가 사용하는 07 폴더에서는 계속해서 93과 93.8이라는 숫자는 컴퓨터가 숫자가 아닌 문자열로 인식된 상대 인가요? (93과 98.8을 더하면 9398.8인 형태로) 그 다음에 다시 문자열을 숫자로 바꾼 과정에서 컴퓨터가 숫자로 인식을 하는건가요?(93과 98.8을 더하면 191.8인 형태로)
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
8:41 질문
@PutMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMemberV2( @PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request) { memberService.update(id, request.getName()); return new UpdateMemberResponse(id, request.getName()); } 파라미터로 들어온 값으로 UpdateMemberResponse를 만들어주지 않고 memberService.findOne을 통해 하는 이유가 있을까요?
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
무결성 제약조건이 위배되는 경우에 대한 예외처리에 대해 질문드립니다
안녕하세요 강사님. Kotlin + JPA에 대해 마땅히 질문남길 곳이 없어서 질문드리게 되었습니다😅 Book 엔티티에서 name을 유니크 키로 지정해서 중복된 값을 설정하려고 하면 아래처럼IllegalArgumentException을 던져주게 하는 코드를 작성하고자 했습니다.@Transactional fun saveBook(request: BookRequest) { val book = Book(request.name, request.type) try { bookRepository.save(book) } catch (e: DataIntegrityViolationException) { throw IllegalArgumentException("이미 등록된 도서입니다.") } }그런데 JPA의 영속성 컨텍스트로 인해 @Transactional이 붙은 메소드에서 DataIntegrityViolationException를 처리해주기 위해선 flush()를 직접 호출해서 쿼리를 실행시켜야 한다는 것을 알게되어 아래와 같이 코드를 수정했고, 테스트 코드에서 정상적으로 IllegalArgumentException이 처리되는 것을 확인할 수 있었습니다.@Transactional fun saveBook(request: BookRequest) { val book = Book(request.name, request.type) try { bookRepository.save(book) bookRepository.flush() } catch (e: DataIntegrityViolationException) { throw IllegalArgumentException("이미 등록된 도서입니다.") } }이렇게 코드를 작성해놓고 보니 하나의 메소드에서만 이렇게 무결성 제약조건 위배에 대한 처리를 한다면 상관이 없겠지만 여러 메소드에서 무결성 제약조건을 위배하는 경우에 대해 각기 다른 메시지를 담은 예외를 던지게 된다면 중복 코드가 너무 많이 발생할 것 같다는 생각이 들더라구요. 이런 경우에 아래처럼 확장함수와 람다를 사용해서 예외 처리를 해도 괜찮을까요?inline fun <reified T, ID, R> JpaRepository<T, ID>.flushOrThrow(exception: Throwable, block: JpaRepository<T, ID>.() -> R): R { try { val result = block() flush() return result } catch (e: DataIntegrityViolationException) { throw exception } }@Transactional fun saveBook(request: BookRequest) { val book = Book(request.name, request.type) bookRepository.flushOrThrow(IllegalArgumentException("이미 등록된 도서입니다.")) { save(book) } }이런 방법을 썼을 때 코드가 너무 복잡해지진 않을지, 협업을 하는 경우에 문제가 되진 않을지, 이런 경우가 발생하면 다른 분들은 어떤 방법을 사용하시는지 고민되어 질문 남깁니다!🙏
-
미해결인터랙티브 개발 실무 끝장내기 [역량 강화편]
스크롤 위치에 따른 페이지 변화 - scroll 이벤트 에 대한 질문
안녕하세요강사님이해가 되지 않아서 질문드립니다.저는 조건을 한글로 생각해서 저렇게 주석으로 정리를 해놨습니다.if문의 조건을 봤을땐 조건이 맞아서 console.log에 scroll 라는 변수도 정상적으로 찍힙니다.제가 궁금한것은 2개의 조건이 스크롤 할때마다 맞는데 어떻게 스크롤 값이 526 이 되거나 넘어가면 pageNum의 값이 증가하는걸까요?많이 헷갈려서 이부분만 여러번 보는듯합니다.아니면 저의 해석이 잘못된 걸까요?// 1. 스크롤의 값이 sectionNum의 Top 시작 값 - 화면 높이 값/3 보다 큰가? = 스크롤의 값이 -250보다 큰가? // 2. 스크롤의 값이 sectionNum의 Top 시작 값 - 화면 높이 값/3 + sectionNum의 전체 높이 값 보다 작은가? = 스크롤의 값이 526 보다 작은가? for(let i = 0; i < maxNum; i++){ // 1. 스크롤의 값이 sectionNum의 Top 시작 값 - 화면 높이 값/3 보다 큰가? = 스크롤의 값이 -250보다 큰가? // 2. 스크롤의 값이 sectionNum의 Top 시작 값 - 화면 높이 값/3 + sectionNum의 전체 높이 값 보다 작은가? = 스크롤의 값이 526 보다 작은가? if(scroll > sectionNum[i].offsetTop - window.innerHeight/3 && scroll < sectionNum[i].offsetTop - window.innerHeight/3 + sectionNum[i].offsetHeight){ pageNum = i; console.log(scroll); if(scroll > sectionNum[i].offsetTop - window.innerHeight/3){ console.log('큼1') } if(scroll < sectionNum[i].offsetTop - window.innerHeight/3 + sectionNum[i].offsetHeight){ console.log('큼2'); } // console.log(sectionNum[i].offsetTop); // 8 785 1562 2339 // console.log(window.innerHeight/3) // 258 // console.log(sectionNum[i].offsetHeight); // 777 // 8 - 258 = -250 // -236 + 734 = 527 // console.log(sectionNum[i].offsetTop - window.innerHeight/3 + sectionNum[i].offsetHeight); // 526 // console.log(scroll) // console.log(pageNum); // console.log(sectionNum[i].offsetTop - window.innerHeight/3) // -250 // 한번 돌았으면 break; } }