bastion을 통해서 private-ec2 접속했고 sudo apt update && sudo apt install nginx -y 기존에 사용하던 해당 명령어로 nginx 설치 시도했는데 아래와 같은 오류로 설치가 되지 않습니다 2.4강 이전 강의들에서는 모두 위 명령어로 nginx 설치했는데, private-ec2에서는 안되는 이유가 있을까요...? E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/n/nginx/nginx-common_1.24.0-2ubuntu7.1_all.deb Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae01:72e0:79f6:151f:9770). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae00:62b8:7186:4640:999). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae00:c128:62c8:e380:bcd6). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae01:4edb:4945:bb5c:50ab). - connect (101: Network is unreachable) Could not connect to ap-northeast-2.ec2.archive.ubuntu.com:80 (13.124.255.209), connection timed out Could not connect to ap-northeast-2.ec2.archive.ubuntu.com:80 (13.124.245.230), connection timed out Could not connect to ap-northeast-2.ec2.archive.ubuntu.com:80 (52.79.128.16), connection timed out Could not connect to ap-northeast-2.ec2.archive.ubuntu.com:80 (52.78.32.75), connection timed out E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/n/nginx/nginx_1.24.0-2ubuntu7.1_amd64.deb Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae01:72e0:79f6:151f:9770). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae00:62b8:7186:4640:999). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae00:c128:62c8:e380:bcd6). - connect (101: Network is unreachable) Cannot initiate the connection to ap-northeast-2.ec2.archive.ubuntu.com:80 (2406:da12:944:ae01:4edb:4945:bb5c:50ab). - connect (101: Network is unreachable) E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
멀티 스레딩에서 파일에 write할 때 질문이 있습니다. thread가 chunk 단위로 파일에 입력되는것은 확인했습니다. 그런데 결과 값의 정렬은 불가능한가요???? 예를 들어 db에 1, 2, 3, 4, 5 ... 라는 데이터가 있고 FlatFileItemWriter로 파일에 쓸 경우 1,2,3,4,5 이런식으로 정렬된 값이 저장 가능한지
안녕하세요, 강의 잘 듣고 있습니다 ! Dockerfile과 githubActions의 yml 파일의 경계를 잘 모르겠습니다. Dockerfile을 통해 jar를 만들어서 실행할 수도 있고, 강의처럼 yml 파일에서 jar파일을 만들 수도 있는데, 현업에서는 이 두 방식 중 어떤 걸 사용하는지 또, 어떤 이점 때문에 사용하는지 궁금합니다...! 추가로, mysql이나 redis 같은 경우는 따로 Dockerfile을 작성하지 않고 compose.yml 에서 바로 이미지 생성을 하고 있는데 이렇게 되는 경우, EC2에서 이미지가 만들어지니 각각의 Dockerfile을 만들어서 gitActions 단계에서 처리하는 게 좋을까요...?
humanThreatDataReader는 스레드 안전한 JpaPagingItemReader 를 사용했다. 라는 구문에서 헷갈리는게 있는데 JpaPagingItemReader의 경우는 lock을 걸지 않는데 SynchronizedItemStreamReader 데코레이터를 적용해야하지 않나요???
상태(State): 작전 수행 지점들 상태(State)란 Flow 내에서 현재 실행이 머무르거나 도달할 수 있는 모든 논리적 지점 을 의미한다. 자동문의 "문 닫힘/문 열림" 에 해당한다. Flow를 구성하는 상태(State)는 크게 두 가지 주요 유형으로 분류할 수 있다. 실행 상태 (StepState 등): 실행 상태는 Flow 내에서 실제 특정 작업(로직)을 수행하는 지점을 나타낸다. 우리 강의의 예제 코드에서 사용된 analyzeContentStep , publishLectureStep , summarizeFailureStep 과 같은 Step이 대표적인 실행 상태(StepState)에 해당한다. 종료 상태 ( EndState ): 종료 상태는 Flow 실행의 최종 도착점을 나타내는 상태이다. Flow가 이 상태에 도달하면 더 이상 진행되지 않고 실행이 종료된다. Job의 최종 결과는 Flow가 어떤 EndState 로 끝났는지에 따라 결정된다. 다이어그램의 [작업 종료] 가 바로 이 종료 상태(EndState)를 가리킨다. 종료 상태(EndState): Flow 실행의 최종 도착점 이다. 이 상태에 도달하면 실행 흐름이 더 이상 진행되지 않고 Flow가 종료된다. Job의 최종 결과는 어떤 EndState로 끝났는지 에 따라 결정되며, 앞선 다이어그램의 [작업 종료] 가 바로 이 종료 상태(EndState)에 해당한다. 여기서 종료 상태가 두개인데 다른 내용인가요???
에러상황: Caused by: java.lang.AssertionError: Range for response status value 401 expected:<SUCCESSFUL> but was:<CLIENT_ERROR> at org.springframework.test.util.AssertionErrors.fail(AssertionErrors.java:61) at org.springframework.test.util.AssertionErrors.assertEquals(AssertionErrors.java:128) at org.springframework.test.web.servlet.result.StatusResultMatchers.lambda$is2xxSuccessful$3(StatusResultMatchers.java:80) at org.springframework.test.web.servlet.MockMvc$1.andExpect(MockMvc.java:214) at com.example.controller.BookControllerItTest.정상인자로 요청시 성공한다.(BookControllerItTest.groovy:43) 관련 내용을 검색해 보니 401 에러는 보통 로그인/인증 문제로, SecurityConfig.java 파일 등을 수정하라는 안내를 봤습니다. 다만, 현재 수강 중인 강의에는 로그인 기능이 없는 상황입니다. 이 경우, 인증 없이 테스트가 통과되도록 설정을 변경하려면 어떻게 해야 할지 조언 부탁드립니다. 참고로, 관련 파일은 메일로 함께 전달드렸습니다. 감사합니다.
안녕하세요. EC2 강의를 듣던 중, 프론트엔드 애플리케이션은 주로 CDN을 통해 배포하고, 백엔드 API 서버는 EC2에 배포한다고 설명해주셨는데 이와 관련해 궁금한 점이 있습니다. 만약 CSR 기반의 프론트엔드 프로젝트라면, 빌드 후 생성된 정적 파일을 S3에 업로드하고 CloudFront 같은 CDN을 통해 배포하는 방식이 충분하다고 생각합니다. 하지만 최근에는 React에서 Server Actions 같은 서버 기능이 도입되고, Next.js 역시 SSR, API Routes 등을 포함하면서 정적 파일만으로 구성되지 않는 경우가 많아지고 있습니다. 이런 경우, 프론트엔드 애플리케이션은 어떤 방식으로 어디에 배포하는 것이 적절할까요? CDN만으로는 어려워 보이는데, EC2나 다른 대안이 있는지도 궁금합니다. 감사합니다.
compose up -d --build 를 통해 최종적으로 다합해서 시작을했는데 에러가 뜨는게아니라 계속 과부하 걸리는지 EC2가 먹통이되더라고요 로컬로해도 계속 메모리부족같은게 뜨면서 프로그램 실행중인거 끄라고 그러는데 뭔가 메모리를 어디서 엄청 잡아먹는거같은데 다른건 다괜찮은데 compose로 mysql이랑 springboot연결하면 그런거같네요
[SELECT 2번 발생] 강의에 설명된 내용과 달리 저는 em.find(Member.class, 100L); 두 번 호출하였을 때 SELECT 문이 두 번 발생하였습니다. 혹시 설정 차이로 다른 결과가 나온 것일까요? 추가로 지금 확인해보니 tx.commit 이후에도 데이터베이스에 저장도 되지 않고, insert 쿼리가 나가지 않네요.. 어떤 문제에서 잘못된 것일까요? 전체 코드 보내드립니다. package hellojpa; import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManagerFactory; import jakarta.persistence.EntityTransaction; import jakarta.persistence.Persistence; import java.util.List; public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); /** * 영속성 컨텍스트1 - 1차 캐시 */ try { // // 비영속 Member member = new Member(); member.setId(100L); member.setName("HelloJPA"); System.out.println("=== BEFORE ==="); em.persist(member); // 영속 System.out.println("=== AFTER ==="); Member member1 = em.find(Member.class, 100L); Member member2 = em.find(Member.class, 100L); System.out.println("result = " + (member1 == member2)); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); emf.close(); } } }
안녕하세요 클린 코더스 강의보면서 예제를 따라해보고 있는데 초반 function 강의 예제에 필요한 org.fitness 라이브러리가 받아지지 않는거 같습니다. 클래스 파일이 없으니 컴파일 에러가 터지는데, 라이브러리 파일 구할 수 있는 방법 없을까요? maven repository: https://mvnrepository.com/artifact/org.fitness/fitness 저장소: https://github.com/msbaek/fitness-example/tree/master
아마 h2같은 in-memory DB를 사용하지 않고, 직접 mysql driver를 추가한 경우는 datasource객체를 만드려고 시도하면서 url, username, password같은 정보가 없다면 스프링 서버를 띄우기도 실패할 것입니다! 이렇게요. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. 스프링 프로젝트를 생성하면 최초로 만들어지는 // java @SpringBootTest public class XXTests { @Test void contextLoads() { } } // kotlin @SpringBootTest class XXTests { @Test fun contextLoads() { } } 이 테스트코드도 실패할거에요 그럴때는 해당 클래스 파일을 없애거나 @SpringBootTest 어노테이션을 제거하거나 맨 위에 @Disabled를 추가해줘서 테스트를 생략하게 하면 될 것 같습니다! 보통 테스트코드에서도 스프링 컨테이너 뜰 때 드라이버가 있다면 DataSource 빈을 만드려고 시도하다가 기본 ENV가 없다면 실패할 것 같은데.. 재성님은 아마 테스트코드를 지우신게 아닐까 생각되네요!
안녕하세요 Transactional Outbox 모듈 적용 부분을 듣던중에 차이가 발생해서 질문드립니다. 강의에서는 이제 각 나눠진 기능마다 XXXAplication 클래스에 EntityScan과 EnableJpaRRepositories 애노테이션을 달아주는것만으로도 다른패키지에있는 outboxEventPublisher를 사용할 수 있는데 저는 인식을 못합니다. application클래스에 @componentScan(...) 까지 달아주고나서야 비로서 인식이 되기 시작하는데 혹시 뭐가 문제고 무슨 차이가 있는걸까요 ... 찾아봤는데 잘 안보입니다 ㅠㅠ
강의 잘 듣고 있습니다. 궁금한 점이 2가지 있는데요. 1. gradle 프로젝트를 생성하면 org/example/App.java가 기본값인거 같습니다. 이걸 프로젝트 생성 시점에서 원하는 명칭으로 변경할 수 있는지 궁금하구요 예) 최초 생성 시 com/회사명/Application.java 2. import된 파일 (강의 예시로는 math)이 .gradle 경로에 떨어지는데 이부분은 알알두면 어떤 상황에서 활용되는지 궁금합니다. (예를 들면 다운로드된 라이브러리는 폐쇄망 환경 같은 곳에 들고 가는데 이 경로도 마찬가지인지)