안녕하세요. 강사님! 강의 정말 잘 보고 있습니다. lightsail로 서버도 배포해보고, ECS를 사용하여 hello world까지 구현해보고, 관리형 서비스에 대해 공부하는데 많은 도움이 되고 있습니다. 고민이 하나 있어 질문 드립니다. 강사님의 강의를 듣기전에 EC2로 배포한 웹사이트가 하나 있습니다. 이 사이트를 강사님 강의 내용을 기반으로 lightsail 또는 ECS로 전환해보고자 합니다. 전환하려는 이유는 기존 ec2는 로드밸런서 및 오토스케일링이 적용되어있지 않아 고가용성이 힘듭니다. 보안그룹 또한 보완할점이 많다고 생각합니다. Backend의 경우는 DB도 ec2 내부에 있어서, 수평확장도 힘들 것같아, RDS로 데이터를 이관하려고 합니다. 그래서 lightsail과 ECS 선택 기준에 알아보았는데, 소규모 서비스는 lightsail / 대규모 서비스는 ECS로 생각하면 된다고 하더라구요. 당연히 소규모와 대규모는 여러 요인에 따라 달라지긴 하겠지만, LightSail과 ECS를 선택하는 대략적인 기준이 있을까요?
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요! 해당 강의에서 기본 생성자를 추가해주실 때, public이 아니라 protected를 사용하셨는데, 그 이유가 무엇인가요? 혹시라도 다른 곳에서 기본생성자를 사용하지 못하도록 하게 하기 위함인가요? 제가 자바가 안익숙해서 그런지, 이러한 접근 제어자를 쓰는 것이나, static, final 키워드를 언제 쓰거나 안써야 하는지에 대한 감이 별로 없어서 구분을 잘 못하는데, 이러한 실력은 어떤 경험을 더 쌓아야 할지.. 아니면 어떤 키워드를 어떻게 공부해야 더이상 안 헷갈리고 확실하게 알 수 있을지 궁금합니다...! 항상 친절한 강의 감사드립니다.
질문을 한 배경 CloudSearch 와 OpenSearch 는 디비의 특정 컬럼과 연결이 가능한가요(postgres sql 을 사용중입니다.) 질문내용 : CloudSearch 와 OpenSearch 를 디비에 연결하는 방법을 알고 싶습니다 환경: 디비는 아마 aws (ec2)에서 도커로 포스트그리스를 세팅한 다음에 스프링이랑 같은 ec2 에 배포할 생각입니다. 아키텍처: 간단한 쇼핑물을 생각해 주시면 감사하겠습니다. ec2 에 다넣고 aop 로 해결하기 (강의를 보고 제가 만들고 싶은것) [OpenSearch]<-스프링에서 요청--[(ec2) spring- {redis,postgres }] 1)스프링 + OpenSearch 로 해당부분 insert 나 delect 발생시 AOP 에서 OpenSearch로 요청을 보내어 OpenSearch 데이터와 디비 데이터를 동기화합니다. 단점) 데이터가 일관성 있게 완벽하게 연동하기 힘들것 같습니다. 디비를 따로두고 람다에서 가져와서 OpenSearch에 넣기 (강의 내용보고 생각한 내용) [프론트]<--[(ec2) spring]-[(ec2)redis,postgres ]->[람다]->[OpenSearch] 2) select * form 테이블 ; 을하여서 특정 테이블과 OpenSearch 전체 테이블을 들고와서 비교하여 넣기 단점) 비용이 많이들것 같습니다. 혹시 디비 연결 플로그인 같은게 있나요? (원하는 내용) [(ec2)redis,postgres ]->[디비연결 플러그인]->[OpenSearch] 혹시 제가 이상한 생각을 한것이며, 위와같이 간단하게 연결이 가능한가요 ㅠㅠ 혹시 3가지 아키텍처중에서 아시는것 있으면 알려주실수 있을까요 ㅜㅜ
다음과 같은 양식으로 남겨주세요. 질문을 한 배경 : 10분만에 간단하게 업로드가 가능하다고 하셨는데, 질문내용 : 전강의 csv 업로드 한것을보니 한글은 깨진다고 하셨는데 한글로 되어있는 csv 로 수정할경우에도 같은 원리로 10분만에 "한글" 검색어 엔진이 가능한가요? 일본 중국등 다른나라 언어도 서치가 가능한거죠?
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
국비 수료 후 선생님 강의 듣고 있습니다. 저는 오라클을 db로 사용했었고 그 땐 sql디벨로퍼를 주로 사용했었는데요 전 인텔리제이 무료버전이라 mysql command line client를 사용해야 할텐데 제가 궁금한건 오라클에서 sql디벨로퍼를 사용했더라면 그에 대응되는게 인텔리제이의 mysql command line client라 보면 될까요? sql디벨로퍼에선 테이블도 가시적으로 보이고 셀렉트 해서 조회하는 결과도 보였는데 mysql command line client 같은 경우 리눅스형식같고 뭔가 좀 어색해서용
ssh를 통해 public-ec2-a1 인스턴스에 접근한 뒤에, private-ec2-a1에 접근할때는 pem키가 필요하기 때문에 해당 키 내용을 복사해서 파일을 만든뒤 접근하셨는데요, public-ec2-c1 인스턴스에서 private-ec2-c1 인스턴스에 접근할때는 pem키를 또 만들지 않고도 바로 접근이 가능했는데 이유가 뭔지 궁금합니다! efs로 각 public ec2가 공유되어서 그런건가요?
안녕하세요. 이번에 배포 관련해서 도움받고자 강의 듣고 있는중인 학생입니다. 다름이 아니라 제가 글을 읽었는데 거기서 이렇게 언급합니다. ``` 유형 항목에서 SSH이면서 포트 항목에서 22인 경우는 AWS EC2에 터미널로 접근할 때를 이야기합니다. pem키가 없으면 접속이 안되니 전체 오픈하는 경우가 종종 있는데, 이렇게되면 이후 파일 공유 디렉토리나 깃허브 등에 실수로 pem키가 노출될 수 있습니다. 노출되는 순간 서버에서 가상화폐가 채굴되는 것을 볼 수 있습니다.. ``` 그리고 거기서는 소스유형을 "내 IP"로 하고 진행했는데 강의처럼 위치무관으로 설정해도 되는지 여쭙고 싶습니다. 얉은 지식이라 질문이 이상할 수 있는점 양해바랍니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
> Task :LibraryAppApplication.main() FAILED . ____ _ /\\ / ___'_ __ ( _)_ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.6) 2024-04-04 17:09:40.815 INFO 12468 --- [ main] c.g.libraryapp.LibraryAppApplication : Starting LibraryAppApplication using Java 17.0.9 on KONG with PID 12468 (C:\Project\project\library-app\build\classes\java\main started by jinju in C:\Project\project\library-app) 2024-04-04 17:09:40.819 INFO 12468 --- [ main] c.g.libraryapp.LibraryAppApplication : No active profile set, falling back to 1 default profile: "default" 2024-04-04 17:09:41.422 INFO 12468 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2024-04-04 17:09:41.474 WARN 12468 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'userRepository' defined in com.group.libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Cannot register bean definition [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in com.group.libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration] for bean 'userRepository': There is already [Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=userConfiguration; factoryMethodName=userRepository; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [com/group/libraryapp/config/UserConfiguration.class]] bound. 2024-04-04 17:09:41.505 INFO 12468 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2024-04-04 17:09:41.521 ERROR 12468 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: The bean 'userRepository', defined in com.group.libraryapp.domain.user.UserRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration, could not be registered. A bean with that name has already been defined in class path resource [com/group/libraryapp/config/UserConfiguration.class] and overriding is disabled. Action: Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true Execution failed for task ':LibraryAppApplication.main()'. > Process 'command 'C:/Program Files/Java/jdk-17/bin/java.exe'' finished with non-zero exit value 1 찾아본 결과 이 문제는 Spring 애플리케이션의 빈(bean) 정의 중에 중복이 발생하여 발생한 것으로 보입니다. 에러 메시지에 따르면 userRepository 빈이 이미 UserConfiguration 클래스에서 정의되어 있으며, 또한 Spring Data JPA가 자체적으로 해당 빈을 생성하려고 시도하고 있는 것으로 보인다고 합니다. 혹시 UserConfiguration 부분에 변경이 적용 안된게 있어서 그런걸까요? 저 bean 부분을 지워도 .UserServiceV1 때문에 컴파일 에러가 발생하더라구요,.,..
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 강사님. 항상 정성 가득하고 충분한 설명 덕분에 도움을 많이 받고 있습니다 : ) 강의를 듣다가 문득 호기심이 생겨 질문을 드립니다 ! JPA 를 사용하는 이유가 DB가 변경 시에 유리하기 때문이라고 이해했습니다. 그런데 만약 DB 변경이 일어나지 않는다고 가정한다면, JPA 설정을 통해서 스프링이 DB 에 넣어주는 것 보다, 일일이 쿼리를 작성하는 것이 더 속도나.. 그런 측면에서 유리하지는 않나요? 1개의 기능을 만드는데 그보다 많은 기능이 포함되어있는 어떤것을 쓰면 자원이 낭비되는 것이 아닐까? 하는 생각이 들었습니다. 현업에서 DB를 변경할 일이 많아서 그런 것일까요? 왜 요즘 MyBatis 보다 JPA 를 선호하는 추세인지도 궁금합니다. (취업 공고를 보면 MyBatis 보다는 JPA 가 많이 보이더라구요!) 항상 감사하고 존경드리며 환절기 감기 조심하세요 !