소개
저는 IT 엔지니어입니다. 언젠가 직업란에 "회사원?", "개발자?", "강사?" 어떤 단어를 선택해야 할 지 고민이 되었던 때가 있었습니다. 그러다가, IT 엔지니어라는 표현이 제가 잘 어울리는 직업명이라는 생각이 들어 지금까지도 직업란에는 "IT 엔지니어"라고 적고 있습니다.
직업이라는 것은 자신의 일을 나타내는 것이고, 일이라는 것은 재미있고, 도움이 되는 일이면 좋겠다는 생각을 가지고 있습니다. 누구나 다 원하는대로 일을 하며 살수는 없지만, 저는 제가 하는 있는 이 일을 좋아하는 있고, 잘하고 싶어하는 사람입니다. 개발자로써, 강사로써, 컨설턴트로써의 역할을 해 오면서, 매번 새롭게 출시되고 변화하는 IT 신기술을 따라가기에 급급하지만, 그래도, 남들보다 조금이라도 먼저 접하고, 전파하고, 사용하고 싶은 사람 중 한명입니다.
최근 관심을 가지고 있는 분야는 온라인 교육 컨설팅입니다. 그리고 관심있는 기술은 Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes 등입니다. 이러한 기술은 실제로 강의도 하고 있고 업무에 적용해서 사용도 하고 있습니다. 하지만, 워낙 방대한 주제이다 보니, 아직까지도 계속 공부하고 있습니다.
머리속에 가지고 있는 것은 진정한 지식이 아니라고 합니다. 저는 제가 가진 지식과 경험을 다양한 방벙을 통해 공유하려 합니다. 그리고, 새로운 분야, 새로운 기술에 계속 도전하고 있는 IT 엔지니어가 될 것입니다.
- 現) 엔제이원컴퍼니 대표
- 現) 동국대학교 국제정보대학원 정보보호학과 대우교수
- 前) JP Mogan Chase AMJ Tech consultant (일본)
- 前) 삼성 SDS CMS 사업본부 책임 엔지니어
강의
전체7로드맵
전체1수강평
- 꼭 필요한 강의였는데 필요한 분야에 대해 잘 다뤄주어서 좋았습니다.
sunjeehun
2024.07.25
1
게시글
질문&답변
2024.07.25
MSA - 각 마이크로 서비스마다 별도의 DB사용 질문
안녕하세요, 이도원입니다. MSA 애플리케이션을 구축하실 때, 데이터베이스 관리를 어떻게 할지, 동기화를 어떻게 할지 등을 설계하게 됩니다. MSA 라고해서 모든 서비스별로 데이터베이스를 분리하여 사용할 필요는 없습니다. 다만, 데이터베이스를 분리하게 되면 서비스간의 종속성을 줄일 수 있기 때문에, 유지보수 및 확장성도 가져갈 수 있다고 생각됩니다. 말씀하신 것처럼 3가지 서비스별로 DB를 구축하기에 필요한 리소스가 적다면, 하나의 DB를 설계하여, 스키마를 잘 분리하거나, 서비스 간에 필요한 데이터를 사용하신다면, 오히려, MSA를 통해 다른 서비스의 데이터를 사용하는데 필요한 Network 발생을 줄일수도 있다고 생각됩니다. 구축하려는 서비스의 환경이나 서비스 특성에 따라서 DB를 분리하거나 공통 된 DB를 사용하실 수 있습니다. 추가 질문있으시면 다시 글 남겨 주세요. 감사합니다.
- 0
- 1
- 53
질문&답변
2024.07.22
window에서 docker minikube 사용하시는 분들... ssh 접속 ping 테스트 공유
안녕하세요, 이도원입니다. 정보 공유 감사드립니다!
- 0
- 2
- 68
질문&답변
2024.07.22
tomcat 배포 문제 war? jar?
안녕하세요, 이도원입니다. Spring Boot 애플리케이션을 외부 Tomcat으로 기동하기시 위해서는 소스를 조금 수정하셔야 합니다. Application 파일을 아래와 같이 수정합니다. @SpringBootApplication public class MyRestfulServiceApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MyRestfulServiceApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MyRestfulServiceApplication.class); } } pom.xml 파일에 Dependency를 확인합니다. (아래 내용이 없으면 추가합니다) ... war ... org.springframework.boot spring-boot-starter-tomcat provided Maven에 대한 예시를 드렸는데, Gradle 도 유사하게 작업하시면 됩니다. apply plugin: 'war' ... dependencies { ... // war 패지키 파일 생성시 톰캣 라이브러리를 포함하지 않도록 추가 해야 합니다. providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' } 패키징 된 war 파일을 Tomcat 폴더에 복사합니다. /webapps 폴더에 war 파일을 복사하고, 톰캣을 기동하면, war 파일의 이름으로 폴더가 생성되는데, API 호출 시, / ">http://localhost:8080/ / 이렇게 호출하시면 됩니다. 예를들어, embedded tomcat에서 http://localhost:8080/hello-world로 호출하셨다면, my-restful-service.war 파일의 경우 외장 톰캣에서는 http://localhost:8080/my-restful-service/hello-world 이런식으로 호출하시면 됩니다. 만약 위와 같은 방법으로 했을 때에도, 404 오류가 발생한다면, 작업하신 JDK 버전과 Tomcat의 버전이 서로 호환되는지 확인해 보셔야 할 것 같습니다. 만약 Java17 + Spring Boot 3 버전으로 테스트 중이라면, Tomcat9 버전이 아닌 Tomcat 10나 Tomcat 11 버전으로 테스트해 보시기 바랍니다. 감사합니다.
- 1
- 1
- 70
질문&답변
2024.07.21
인텔리제이에서스프링부트 파일 실행하면
안녕하세요, 이도원입니다. 공유 된 Spring boot 프로제트를 IntelliJ에서 불러와서 사용하시는 거라면, IntelliJ > Open > pom.xml 을 선택하시고, Open as Project 로 선택하시면 Maven 프로젝트로 오픈되어 프로젝트 구조를 확인하실 수 있습니다. 만약 처름 Spring Boot를 생성하여 실행하시는 거라면, Intellij Community의 경우에는 start.spring.io 페이지에서 생성한 프로젝트를 zip 파일형태로 다운로드 받으신 다음에 maven 프로젝트로 불러오시면 되고, IntelliJ Ulimate 버전의 경우에는 바로 생성하실 수 있습니다. 작업하신 환경에 따라 어떻게 진행하셨는지 다시 공유해 주시면 상황에 맞는 답변을 다시 공유해 드리도록 하겠습니다. 감사합니다.
- 0
- 1
- 48
질문&답변
2024.07.21
user와 post의 관계에 대해 명확하게 알고 싶습니다.
안녕하세요, 이도원입니다. 말씀하신 내용처럼 JPA에 의해 Post와 User 사이에 의존 관계가 성립되어 있고, User (1) Post (N) 관계로 설정되어 있습니다. User에서의 기본키가 id이고, Post에서도 id가 기본키인 입니다. User.jav에서는 posts를 OneToMnay로 설정(1:N) 하였고, 연결되는 필드명을 user로 하였습니다. Post에서는 User 빈을 참조하도록 선언되어 있고 이때는 ManyToOne(N:1)로 설정 되었습니다. 이 2개의 설정으로 User:Post의 설정은 1:N으로 설정되며, Post에서의 User 컬럼 참조키는 선언된 변수이름(user) + "_" + 기본키(id) = user_id 로 설정 됩니다. 만약, Post에서의 User user 선언을 userTest로 하신다면, Post 테이블의 컬럼은 user_test_id로 변경될 것입니다. // User.java @OneToMany(mappedBy = "user") private List posts; // Post.java @ManyToOne(fetch = FetchType.LAZY) @JsonIgnore private User user; 위에서 예를 든 것처럼, User userTest로 선언할 경우는 아래와 같이 코드를 변경하시면 됩니다. // User.java @OneToMany(mappedBy = "userTest") private List posts; // Post.java @ManyToOne(fetch = FetchType.LAZY) @JsonIgnore private User userTest; 생성 된 테이블은 아래와 같습니다. (사진)추가 질문사항 있으시면 다시 글 남겨주세요. 감사합니다.
- 0
- 2
- 84