inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

docker compose ci&cd 질문

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

도커 컴포즈를 배우면서 여러개의 컨테이너를 띄우고 spring에서 특정 db를 가리켜서 사용할 수 있는걸 이해했는데 이걸 ci&cd 배포를 추가한다고 치면 문제가 발생합니다. 제가 이해하기로는 docker compose는 build 부분에 도커파일을 넣게 되어 있는데 근데 이러면 ci&cd 할 때 스크립트 순서가 java 설치 -> checkout -> 빌드 -> jar파일, 도커 파일, 도커 컴포즈 파일 scp를 활용해 전달 -> ssh로 접근해서 도커 컴포즈 실행 이렇게 사용하면 이미지를 넣어두고 다른데서도 사용할 수 있어야 하는 그런 장점이 없어진다고 생각하는데 이걸 어떻게 배포를 해야 하는건가요? 제가 생각한 도커, 컴포즈 파일, jar 파일을 전달하고 해당 ec2에서 docker compose를 해야하는건가요??

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
limjs730 댓글 2 좋아요 0 조회수 187

docker compose 2개(mysql, spring boot)를 띄울시 동작을 안합니다.

미해결

비전공자도 이해할 수 있는 Docker 입문/실전

도커 파일은 아래입니다. FROM openjdk:17-jdk COPY build/libs/*.jar /app.jar ENTRYPOINT ["java","-jar","/app.jar"] 도커 컴포즈 파일 입니다. services: my-server: build: . ports: - 8080:8080 depends_on: my-db: condition: service_healthy my-db: image: mysql environment: MYSQL_ROOT_PASSWORD: 1234 MYSQL_DATABASE: mydb volumes: - /Users/shchoi/Downloads/docker/mysql:/var/lib/mysql ports: - 3306:3306 healthcheck: test: [ "CMD", "mysqladmin", "ping" ] interval: 5s retries: 10 yml파일 입니다. spring: datasource: url: jdbc:mysql://my-db:3306/mydb username: root password: 1234 driver-class-name: com.mysql.cj.jdbc.Driver 이렇게 하고 실행시 db는 up이 되는데 spring은 다운 됩니다. 로그는 좀 길긴한데 아래와 같습니다. 왜 안뜨는걸까요....; my-server-1 | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) my-server-1 | at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1812) ~[spring-beans-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601) ~[spring-beans-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523) ~[spring-beans-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:346) ~[spring-beans-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.beans.factory.support .AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) ~[spring-beans-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) ~[spring-context-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.context.support .AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.4.3.jar!/:3.4.3] my-server-1 | at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.4.3.jar!/:3.4.3] my-server-1 | at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.4.3.jar!/:3.4.3] my-server-1 | at org.springframework.boot.SpringApplication.run (SpringApplication.java:318) ~[spring-boot-3.4.3.jar!/:3.4.3] my-server-1 | at org.springframework.boot.SpringApplication.run (SpringApplication.java:1361) ~[spring-boot-3.4.3.jar!/:3.4.3] my-server-1 | at org.springframework.boot.SpringApplication.run (SpringApplication.java:1350) ~[spring-boot-3.4.3.jar!/:3.4.3] my-server-1 | at com.csh.springdemo.SpringDemoApplication.main(SpringDemoApplication.java:10) ~[!/:0.0.1-SNAPSHOT] my-server-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] my-server-1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] my-server-1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] my-server-1 | at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] my-server-1 | at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[app.jar:0.0.1-SNAPSHOT] my-server-1 | at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[app.jar:0.0.1-SNAPSHOT] my-server-1 | at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[app.jar:0.0.1-SNAPSHOT] my-server-1 | Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) my-server-1 | at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:276) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:226) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:194) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1442) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build (EntityManagerFactoryBuilderImpl.java:1513) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66) ~[spring-orm-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) ~[spring-orm-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) ~[spring-orm-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1859) ~[spring-beans-6.2.3.jar!/:6.2.3] my-server-1 | at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1808) ~[spring-beans-6.2.3.jar!/:6.2.3] my-server-1 | ... 22 common frames omitted my-server-1 | Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) my-server-1 | at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:191) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:87) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentWithDefaults(JdbcEnvironmentInitiator.java:181) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:392) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[ hibernate-core-6.6.8.Final .jar!/: 6.6.8.Final ] my-server-1 | ... 37 common frames omitted my-server-1 |

  • docker
  • docker-compose
  • docker-volume
  • docker-image
  • container
  • ecr
limjs730 댓글 3 좋아요 0 조회수 305

코드 임포트시 오류

미해결

실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌

올려주신 강의 자료에서 6번 코드부터 임포트 했는데 오류가 납니다.

  • java
  • jsp
YUN JOO CHOI 댓글 1 좋아요 0 조회수 149

prestartCoreThread()와의 차이점, active 카운트

해결됨

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 해당 강의와 관련된 내용을 학습하던 중에 prestartAllCoreThreads() 외에도 prestartCoreThreads() 라는 메서드가 존재하는 것을 확인했습니다. 제가 인지한 두 메서드의 차이점은 다음과 같습니다. |메서드 |prestartAllCoreThreads()|prestartCoreThreads()| |---------------|------------------------|---------------------| |생성되는 스레드 수 |전체 코어 스레드 수 |1개씩 | |생성된 스레드의 상태|active 아님 |active | 여기서 후자의 경우 1개씩 생성한다는 점은 이해가 가는데, 왜 두 메서드의 경우에서 생성한 스레드의 상태가 active냐/아니냐로 차이가 나는지는 모르겠습니다. 챗지피티와 이에 대해서 대화를 좀 나눴는데 그 내용도 이해가 되지 않습니다. 다수의 스레드가 동시에 getTask() 를 호출하면 모두 블로킹 상태가되어 락을 기다리지 않기 때문에 active 카운트가 증가하지 않는다.. 라고 하는데 이해가 가지 않습니다. 실행 결과 // case1. 생성된 스레드가 active 상태가 아님 poolExecutor.prestartAllCoreThreads(); printState(executorService); //15:31:40.628 [ main] [pool=1000, active=0, queuedTasks=0, completedTasks=0 // case2. 생성된 스레드가 active 상태임 poolExecutor.prestartCoreThread(); printState(executorService); //15:17:53.579 [ main] [pool=1, active=1, queuedTasks=0, completedTasks=0

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
dev.rudevico 댓글 2 좋아요 0 조회수 138

vagrant up 설치에러

미해결

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

vagrant up하면 에러를 FAQ에서 보고 해봐도 잘 안되네요. 검색해보고 찾아보고 coreinfo -v확인도 해보고 해봤는데.. 다시도 설치해보고 Hyper-V 비활성화도 되어있구요.관리자권한으로 실행도 해봤구요. 보안에서 해당 virtualbox폴더 차단 제외도 해봤구요. 에러내용은 아래와 같습니다. 해당 위치 로그 파일 내용은 다음과 같습니다. 44a8.453c: 00007ff7f25a25fd / 0x01125fd: 00 != 4e 44a8.453c: 00007ff7f25a25fe / 0x01125fe: 00 != 47 44a8.453c: 00007ff7f25a25ff / 0x01125ff: 00 != 58 44a8.453c: Restored 0xa08 bytes of original file content at 00007ff7f25a25f8 44a8.453c: Error (rc=-5607): 44a8.453c: ntdll.dll: SizeOfImage (0x263000) isn't close enough to the mapping size (0x266000) 44a8.453c: Error (rc=-5607): 44a8.453c: supHardenedWinVerifyProcess failed with -5607: ntdll.dll: SizeOfImage (0x263000) isn't close enough to the mapping size (0x266000) 44a8.453c: Error -5607 in supR3HardNtChildPurify! (enmWhat=5) 44a8.453c: supHardenedWinVerifyProcess failed with -5607: ntdll.dll: SizeOfImage (0x263000) isn't close enough to the mapping size (0x266000)

  • kubernetes
  • infrastructure
  • container
odark 댓글 2 좋아요 1 조회수 153

instance.getMyField()의 값이 왜 다른가요?

해결됨

자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]

AtomicIntegerFieldUpdater 기본 구현 페이지의 코드에서 마지막 System.out.println() 부분을 보면은 new value라고 하고 instance.getMyFiled()를 하고 Updated value에도 instance.getMyFiled()를 합니다 그런데 옆에 주석에 new value는 42, updated value는 43으로 나오는데 실제로 실행해보니 저는 둘 다 43으로 나오더라구요 표기 오류가 맞는거겠죠?

  • java
  • 동시성
  • multithread
  • synchronisation
안_ 댓글 1 좋아요 0 조회수 136

저만 안 되는 것인가요? ㅠㅠ

해결됨

실리콘밸리 엔지니어와 함께하는 Docker

동영상 강의에서 하신대로 my-first-docker 실행해서 docker run -p 5001:5000 my-first-docker를 실행하였습니다. 실행 되었다는 log를 보고, 영상에서와 같이 0.0.0.0:5001로 연결시도를 했는데, Address Invalid라고 나오네요.. 127.0.0.1:5001로 연결해 보니, "Welcome to the Docker Lecture App Thank you"가 나오네요.. 강의에서는 0.0.0.0으로 입력 되었는데.. 왜 전 안되는 걸까요?

  • docker
  • container
Inhwa Choi 댓글 2 좋아요 0 조회수 307

node_modules에서 export 오류

미해결

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

수업과 같이 npm에 배포하고 제가 만든 ui를 다운받아 import하는 과정에서 해당 이미지와 같이 node_modules에서 export가 나타납니다. 1) lib파일과 index.ts파일을 myapp 폴더로 직접 import했을때는 정상적으로 작동하였습니다. 2) 해당 수업에서 codecamp-ui가 npm 사이트에 아직 배포중이기에 그것도 시험삼아 다운받아서 import하였지만 똑같은 오류가 나타났습니다. 3) node_modules 파일 삭제하고 다시 yarn install로 다운받았지만 같은 오류가 나타났습니다. 그 전 수업까지는 동일하게 오류없이 진행했습니다. 무엇이 문제일까요?

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
댓글 2 좋아요 0 조회수 162

기술의 흐름으로 이해하는 컨테이너 질문드립니다!

미해결

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다) 영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다) 긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com) 카페 [강의 자료실]에도 많은 질문과 답변들이 있어요! cafe: https://cafe.naver.com/kubeops -- 9분 58초쯤에 나오는 설명에 대한 질문입니다. kubelet에서 컨테이너 런타임으로 바로 받는다는 의미가 잘 이해가 안갑니다. 우선 제가 이해한것을 말씀드리겠습니다.! CRI를 이용해서 grpc로 통신하는 방법에서 CRI-plugin을 통해 직접 받는 방법으로 변경되었다. 각각의 컨테이너 밴더에서 플러그인을 구현하고 kubelet에서 해당 플러그인을 직접 호출한다. 여기서 궁금한 점입니다! CRI 구조에서, 도커의 새로운 기능이 생기면 쿠버네티스도 패치해야한다고 하셨는데 이는 CRI-plugin를 이용할때도 동일한게 아닌가요? 둘의 개발 라이프사이클을 다르게 가져갈 수 있는 이유가 궁금합니다. 새로운 기능이 생겨도 인터페이스만 맞으면 되는 것인데,인터페이스의 변화가 필요하다면 결국은 플러그인이나 CRI나 kubelet의 변화도 필요한게 아닌가요??

  • kubernetes
  • infrastructure
  • container
ㅎㅇㅎㅇㅎㅇ 댓글 2 좋아요 1 조회수 127

Set 메소드

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

9:10 set 메서드 없이 or, and 연산자를 써도 중복이 제거되는건가요??

  • python
  • java
  • c
  • 정보처리기사
한상철 댓글 2 좋아요 0 조회수 78

업데이트 이후 조회

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] em.find()로 가져온 후 이름을 바꾸고 commit 이전에 em.find()로 똑같은 id의 이름을 조회해서 이름을 확인했을 때 영속성 컨텍스트에서 1차 캐쉬로 조회하기에 바뀐 이름으로 조회되는 것이 맞나요?

  • java
  • jpa
염경호 댓글 1 좋아요 0 조회수 115

static 사용

해결됨

김영한의 실전 자바 - 중급 1편

package exception.ex; public class NetworkService { public void sendMessage(String data) { String url = "http://example.com"; NetworkClient networkClient = new NetworkClient(url); networkClient.initError(data); String connectResult = networkClient.connect(); if (isError(connectResult)) { System.out.println("[log] 오류 코드: " + connectResult); } else { String sendResult = networkClient.send(data); if (isError(sendResult)) { System.out.println("[log] 오류 코드: " + sendResult); } } networkClient.disconnect(); } private static boolean isError(String resultCode) { return !resultCode.equals("success"); } } 오늘 강의 중 작성해주신 코드입니다. isError() 를 static method로 잡으신 이유가 궁금합니다. instance method로도 가능할텐데 어떤 의도로 static 여부를 결정해야하는지 팁이 있을까요?

  • java
  • 객체지향
티티티 댓글 1 좋아요 0 조회수 117

해당 강의가 실제로 현업에서 쓰는 방법들인가요??

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님 이번에 강의를 구매한 학생입니다. 해당 강의가 실제로 현업에서 사용될 수 있는 방법들인가요? 해당 강의를 수강하고, 이를 바탕으로 프로젝트에 녹여내볼려고 하는데 현업에서 사용하지 않는 방법들이라던가 교육용 강의라면 고민을 좀 해봐야 될 것 같아 문의글 남깁니다 감사합니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
blackhole124 댓글 2 좋아요 0 조회수 226

next-auth 사용 이유

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요. 백엔드에서 connect.sid 쿠키와 next-auth의 auth.js-session-token을 사용해서 유저 인증을 하는 것 처럼 보입니다. 프론트서버에서 유저가 접근 시 세션 쿠키(connect.sid)를 받아 백엔드에 유저 세션을 확인한다면 next-auth를 사용하지 않아도 되는 것처럼 보입니다. 백엔드에서 auth.js-sessoin-token으로 유저 인증을 한다면 역시 세션 쿠키(connect.sid)가 필요없는 것처럼 보입니다. connect.sid와 auth.js-session-token 쿠키를 모두 사용해야 하는 이유가 있을까요? 만약 둘 다 사용하는게 좋다고 한다면 동기화가 필요할 것 같은데(만료 시간, 세션 무효화 등..), 이건 어디서 어떻게 처리하는게 좋을까요? (예외 질문) connect.sid의 쿠키에 httpOnly 옵션이 false여도 괜찮은가요? 혹시 백엔드에서 connect.sid의 쿠키를 httpOnly로 보냈다면 쿠키파싱이 제대로 안된 것 같습니다. 아래 모듈로 쿠키파싱하면 되는 것 같습니다. 혹시나하고 남겨봅니다. //현재 코드 //import cookie from "cookie"; //const parsed = cookie.parse(setCookie); import { parseSetCookie } from "next/dist/compiled/@edge-runtime/cookies"; const parsed = parseSetCookie(setCookie);

  • react
  • next.js
  • next-auth
송지훈 댓글 2 좋아요 0 조회수 239

상수, 문자 더하기 (참고) 부분 질문

해결됨

실전! Querydsl

안녕하세요. 상수처리에 궁금한 점이 있습니다. 3장 기본문법pdf의 p.21 참고를 강의촬영후 달아주셨는데요. Q1. '위와 같이 최적화가 가능' 이란 설명을 하셨는데 위 쿼리가 어떤 점에서 최적화가 된 쿼리인지 알고싶습니다. Q2. 상수를 더하는 것 처럼 최적화가 어려우면 SQL에 constant 값을 넘긴다. 이 말씀도 잘 이해가 되지 않습니다. 상수를 더한다는 표현과 상수를 넘긴다라는 표현이 낮설기만 한데요. 혹시 예시를 들을 수 있을까요?

  • java
  • jpa
창신동 장첸 댓글 1 좋아요 0 조회수 118

[오타 제보] 13. 스레드 풀과 Executor 프레임워크2

해결됨

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

[오타 내용] 대상 강의록 : 13. 스레드 풀과 Executor 프레임워크2.pdf 대상 위치 : p.2 close() 부분 오타 내용 변경 전: close() 는 자바 19부터 지원하는 서비즈 종료 메서드이다 변경 후: close() 는 자바 19부터 지원하는 서비스 종료 메서드이다

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
dev.rudevico 댓글 2 좋아요 0 조회수 99

8강 Spring Boot 프로젝트 세팅 2

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

8강 Spring Boot 프로젝트 세팅 2 강의를 반복해서 보고 있습니다. 강의에서는 Multi Module 을 생성하기 위하여 Directory 를 생성하고, build.gradle 파일을 생성한 후 코드 입력 settings.gradle 에 Module 정의를 하시고 계십니다. 인텔리제이에서는 프로젝트에 Module 을 추가하기 메뉴가 있습니다. 인텔리제이 에서 프로젝트에 Module 을 추가하면, 강좌파일의 모듈처럼 생성이 되지 않습니다. project/module1, project/module2 이렇게 1단계 모듈만 작성이 가능합니다. 인터넷 검색자료에도 모듈작성이 1단계방식(에를들어 service-article, service-like)으로 되어 있습니다. 계층구조가 강의 내용이 보기 깔끔하여 따라 해보려 하는데 잘 되지 않습니다 디렉토리를 2단계로 작성( project/service/article)하고 build.gradle 파일을 직접 생성하면 "dependecies" 키워드도 자동안성이 되지 않습니다 인텔리제이 버전은 "IntelliJ IDEA 2024.3.3 (Ultimate Edition)", "Build #IU-243.24978.46, built on February 11, 2025" 입니다 인텔리제이가 버전업이 될때마다 메뉴라던가, 기능이 많이 바뀌기는 합니다만. 조금 답답합니다

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
내멋으로 댓글 2 좋아요 0 조회수 190

댓글 최대 2 depth - CUD API 테스트 & 테스트 데이터 삽입 RestClient 호출시 null

미해결

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 댓글 최대 2 depth - CUD API 테스트 & 테스트 데이터 삽입 시 RestClient 호출시 null 발생 됩니다. 혹시 어느 부분을 봐야 할까요?? > Task :service:comment:test CommentApiTest > create() FAILED org.springframework.web.client.ResourceAccessException at CommentApiTest.java:36 Caused by: java.net .ConnectException at CommentApiTest.java:36 Caused by: java.net .ConnectException at Utils.java:1041 Caused by: java.nio.channels.ClosedChannelException at SocketChannelImpl.java:202 1 test completed, 1 failed > Task :service:comment:test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':service:comment:test'. package kuke.board.comment.service.api; import kuke.board.comment.service.response.CommentResponse; import lombok.AllArgsConstructor; import lombok.Getter; import org.junit.jupiter.api.Test; import org.springframework.web.client.RestClient; public class CommentApiTest { RestClient restClient = RestClient.create("http://localhost:9001"); @Test void create() { CommentResponse response1 = createComment(new CommentCreateRequest(1L, "my comment1", null, 1L)); CommentResponse response2 = createComment(new CommentCreateRequest(1L, "my comment2", response1.getCommentId(), 1L)); CommentResponse response3 = createComment(new CommentCreateRequest(1L, "my comment3", response1.getCommentId(), 1L)); System.out.println("commentId=%s".formatted(response1.getCommentId())); System.out.println("\tcommentId=%s".formatted(response2.getCommentId())); System.out.println("\tcommentId=%s".formatted(response3.getCommentId())); } CommentResponse createComment(CommentCreateRequest request) { return restClient.post() .uri("/v1/comments") .body(request) .retrieve() .body(CommentResponse.class); } @Getter @AllArgsConstructor public static class CommentCreateRequest { private Long articleId; private String content; private Long parentCommentId; private Long writerId; } }

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
요조 댓글 2 좋아요 0 조회수 172

cache: "force-cache" 질문이 있습니다.

미해결

Next + React Query로 SNS 서비스 만들기

const res = await fetch( `${process.env.NEXT_PUBLIC_BASE_URL}/api/posts/recommends?cursor=${pageParam}`, { next: { tags: ["posts", "recommends"], }, //cache: "force-cache", } ); '/home'에서 포스팅 로딩 시 또는 새로고침 시에 데이터를 최초 조회하는 시점에서 cache: "force-cache"를 제거하면 포스팅이 노출되고 포함하면 포스팅이 안 나오는 현상이 있는데 어떤 이유인지 의심 가는 부분을 못 찾겠어서 질문 드립니다. cache: "force-cache" 주석처리 데이터 존재 cache: "force-cache" 빈 배열

  • react
  • next.js
  • react-query
  • next-auth
  • msw
yskim 댓글 2 좋아요 0 조회수 145

트랜잭션 격리수준 질문

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

애플리케이션 수준에서 Repeatable Read를 JPA는 항상 보장하는지 궁금합니다. 어떤 글에서는 DBMS의 격리수준 설정값에 따라 JPA도 동일한 격리수준 설정값을 갖는다고 하는데요. 대부분의 DBMS가 Read Commited라서 JPA도 ReadCommited인가보다 막연하게 생각했다가 아래 실습을 통해 큰 코를 다쳤습니다. 실습내용: TX1에서 MEMBER(id=1, age=20) 인 DB레코드를 em.find(Member.class, 1L)로 조회해서 엔티티객체를 얻는다. 이후 sleep(15초)을 걸어준다. TX2에서 h2-console에서 이 레코드를 업데이트 해서 age = 50 으로 변경하고 커밋을 한다. 그럼에도 불구하고 15초뒤 TX1에서 JPQL로 조회한 엔티티는 같은 주소값을 갖는 동일한 엔티티객체를 갖는다. 즉, age가 여전히 20이다. 어떻게 정리를 하는 것이 좋을까요? DBMS설정값을 따른다 vs Repeatable Read 참고: https://cheese10yun.github.io/jpa-jpql/

  • java
  • jpa
창신동 장첸 댓글 1 좋아요 0 조회수 74

인기 태그

인프런 TOP Writers

주간 인기글