저는 IT 엔지니어입니다. 언젠가 직업란에 "회사원?", "개발자?", "강사?" 어떤 단어를 선택해야 할 지 고민이 되었던 때가 있었습니다. 그러다가, IT 엔지니어라는 표현이 제가 잘 어울리는 직업명이라는 생각이 들어 지금까지도 직업란에는 "IT 엔지니어"라고 적고 있습니다.
직업이라는 것은 자신의 일을 나타내는 것이고, 일이라는 것은 재미있고, 도움이 되는 일이면 좋겠다는 생각을 가지고 있습니다. 누구나 다 원하는대로 일을 하며 살수는 없지만, 저는 제가 하는 있는 이 일을 좋아하는 있고, 잘하고 싶어하는 사람입니다. 개발자로써, 강사로써, 컨설턴트로써의 역할을 해 오면서, 매번 새롭게 출시되고 변화하는 IT 신기술을 따라가기에 급급하지만, 그래도, 남들보다 조금이라도 먼저 접하고, 전파하고, 사용하고 싶은 사람 중 한명입니다.
최근 관심을 가지고 있는 분야는 온라인 교육 컨설팅입니다. 그리고 관심있는 기술은 Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes 등입니다. 이러한 기술은 실제로 강의도 하고 있고 업무에 적용해서 사용도 하고 있습니다. 하지만, 워낙 방대한 주제이다 보니, 아직까지도 계속 공부하고 있습니다.
머리속에 가지고 있는 것은 진정한 지식이 아니라고 합니다. 저는 제가 가진 지식과 경험을 다양한 방벙을 통해 공유하려 합니다. 그리고, 새로운 분야, 새로운 기술에 계속 도전하고 있는 IT 엔지니어가 될 것입니다.
現) 엔제이원컴퍼니 대표
現) 동국대학교 국제정보대학원 정보보호학과 대우교수
前) JP Morgan Chase AMJ Tech consultant (일본)
前) 삼성 SDS CMS 사업본부 책임 엔지니어
Khóa học
Đánh giá khóa học
- [Phiên bản sửa đổi] Thiết lập IntelliJ IDEA để phát triển ứng dụng web
ghkddlsdyd998401
·
[Phiên bản sửa đổi 2023-11-27] Phát triển RESTful Web Services bằng Spring Boot 3.x[Phiên bản sửa đổi 2023-11-27] Phát triển RESTful Web Services bằng Spring Boot 3.x- [Phiên bản sửa đổi] Thiết lập IntelliJ IDEA để phát triển ứng dụng web
- Ứng dụng kiến trúc microservice (MSA) phát triển với Spring Cloud
- Hướng dẫn xây dựng môi trường ảo hóa để sử dụng đa hệ điều hành (Docker + Kubernetes)
Bài viết
Hỏi & Đáp
강의 업데이트 계획이 궁금합니다.
안녕하세요, 이도원입니다. 강의 업데이트는 순차적으로 진행중입니다. 강의 초반부분은 전반적으로 업데이트 할 내용이 많았지만, 후반부는 실습 위주의 업데이트가 Spring Boot 3.2로 한번 되었었기 때문에, 전반적인 업데이트는 아니라고 생각되고 있습니다. 전체 17 섹션 중 (18, 19 섹션은 부록과 실습에 대한 업데이트 섹션입니다) 현재 Section 11까지 업데이트가 완료 되었습니다. 나머지 강의에 대한 업데이트 계획은 아래와 같습니다. Section 12, Section 13 (이론 부분 업데이트 예정 9월)Section 14 (이론 부분 업데이트 예정 9월, 실습 부분은 Section 19에서 확인 가능)Section 15 (업데이트 예정 10월)Section 16 (이론 부분만 업데이트 예정 10월)Section 17 (일부 서비스만 업데이트 예정 10월)추가 문의 사항 있으시면 다시 글 남겨주시기 바랍니다. 감사합니다.
- 0
- 2
- 47
Hỏi & Đáp
pdf 자료는 없나요?
안녕하세요, 이도원입니다. "[개전판] Spring Boot 3.x를 이용한 RESTful Web Services 개발" 강의의 교안은 실습 수업 자료와 같이 Github에 공유 되어 있습니다. 아래 링크에서 확인해 보시기 바랍니다. https://github.com/joneconsulting/new-my-restful-service/tree/main/pdf 감사합니다.
- 0
- 2
- 25
Hỏi & Đáp
k8s 를 고려한 개발은 어떻게 진행하나요?
안녕하세요, 이도원입니다. 답변이 늦어 죄송합니다. 실무에서의 개발 방식은 정해져 있다기 보다는 서비스나 개발의 성격에 따라 시스템 아키텍처를 다르게 구성하게 됩니다. 말씀하신 내용처럼 Spring Cloud의 서비를 이용해서 애플리케이션을 구축할 수도 있지만, 운영에 있어 K8s를 사용하는 것이 필요하다면, 굳이 Spring Cloud의 기능과 혼용해서 사용할 필요는 없습니다. 실무에서도 DEV(개발) 환경과, PROD(운영) 환경이 구축된 상태라 하더라도, 개발자가 개발하게 되는 환경은 Local 환경에서의 개발이 우선이기 떄문에, Local 환경에서 개발하고 검증할 수 있는 내용을 먼저 진행하는 것이 우선이라고 생각됩니다. Spring Cloud에서 K8s로의 전환이 아니라, 필요에 의해서 선택하는 서비스가 달라질 것이기 때문에, 2번의 작업을 하기보다는 개발 환경의 일치를 통해, 개발에서부터 테스트 - 운영에 이뤄지는 과정이 동일할 수 있도록 구성하는 것이 더 효율적이라고 생각됩니다. https://developers.redhat.com/blog/2016/12/09/spring-cloud-for-microservices-compared-to-kubernetes위 URL의 내용도 같이 참고해 보시기 바랍니다. 추가 질문사항 있으시면 다시 글 남겨주세요.감사합니다.
- 0
- 2
- 48
Hỏi & Đáp
실습 환경 구축에 대한 질문
안녕하세요, 이도원입니다. 문의하신 내용을 위한 별도의 가이드는 없습니다만, 인텔리제이 및 Maven 등과 같은 SW에 대한 설치 가이드는 무료 강의를 통해서도 확인해 보실 수 있습니다.https://inf.run/3r4xi추가 문의사항은 다시 글 남겨 주시기 바랍니다. 감사합니다.
- 0
- 2
- 24
Hỏi & Đáp
locale 정보가 null 이면 무조건 messages_ko.properties이 호출 되는 문제
안녕하세요, 이도원입니다. Locale 정보가 없을 때, 즉, locale이 null이면, MessageSource는 LocaleContextHolder.getLocale() 또는 Locale.getDefault() 를 fallback으로 사용하게 됩니다. 이 값이 JVM의 기본 로케일이 ko_KR로 되어 있다면, messages_ko.properties를 참조하게 됩니다. 현재 작업하시는 환경의 Locale.getDefault() 값을 확인해 보시면 좋을 것 같습니다. 추가로, Locale 정보가 null 일 경우 명시적으로 Locale.ENGLISH로 지정해 보고 실행해 보시면 어떨까 합니다. 감사합니다.
- 0
- 2
- 36
Hỏi & Đáp
섹션2 강의자료
안녕하세요, 이도원입니다. 강의 교안은 아래 링크에서 확인하실 수 있습니다. https://github.com/joneconsulting/docker-files감사합니다.
- 0
- 2
- 38
Hỏi & Đáp
Kafka connect 실행시 No suitable driver 해결이 안됩니다
안녕하세요, 이도원입니다. JDBC 드라이버 관련 오류는, Kafka Connect 설정 시, 해당 드라이버의 저장 위치가 잘못 되어 생긴 현상일 경우가 큽니다. 강의에서 진행했던 경로에 mysql JDBC 드라이버를 저장했는지, 해당 경로의 JDBC Connector가 정상적으로 작동되는지 확인해 보셔야 할 것 같습니다. (http://localhost:8083/connectors) 추가 질문 사항 있으시면 다시 글 남겨 주세요. 감사합니다.
- 0
- 2
- 48
Hỏi & Đáp
MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)
안녕하세요, 이도원입니다. 모놀리스 방식과 MSA 방식의 선택은 둘 중 어떤 것이 더 좋다 나쁘다라고 구분짓기 어렵다고 생각됩니다. 실제로도 모놀리스 방식은 여전히 좋은 개발방식 중 하나이고, 빠르게 실행할 수 있고, 말씀하신 내용처럼 어떤 면에서는 MSA 대비해서 성능도 좋습니다. 서비스를 위한 애플리케이션을 개발할 때, 전체 프로젝트의 구성을 MSA 또는 모놀리스 방식으로 선택한다기 보다는, 크게는 도메인 -> 서브 도메인 -> 모듈 -> 기능 등으로 어떤 DB, 데이터처리 방식, 일관성 방식, 기술 등을 선택해야합니다. 간단하게 예를 들어, 데이터의 일관성이 강력하게 요구되는지, 최종적으로 일관성을 맞추면 되는지에 따라서, 데이터 처리 방식과 통신 방식이 선택될 수 있습니다. 말씀하신 내용처럼 MSA는 다수의 작은 모듈(서비스)로 분리되어 개발, 운영되기 때문에, 어떠한 부분에서는 통신 비용이 더 발생하고, 병목현상이 생기게 됩니다. 따라서, 내부적인 통신에서는 REST 방식 보다는 gRPC를 선택하거나, 더 나아가서, 성능이 중요한 부분이라면 서비스의 경계를 다시 나누거나, 모놀리스의 모듈로 구분하여 개발하는 것이 필요할 수도 있습니다. 개발방법과 프레임워크, DB, 기술의 선택이 하나로 결정되지 않는다는 전제로, 서비스의 상황과 데이터 처리의 특성에 따라 선택해야 합니다. 그렇다고, 여러 개발방법과 기술이 섞여있는 형태로 유지할 수도 없다고 생각됩니다. 질문하신 내용에 대한 답변이 되었는지 모르겠네요. 추가 질문사항 있으시면 언제든지 글 남겨 주세요. 감사합니다.
- 0
- 2
- 89
Hỏi & Đáp
어떤 것이 업데이트 된 건가요?
안녕하세요, 이도원입니다. 강의 목차에 보시면, Updated 라고 된 섹션들은 새롭게 강의 업데이트 된 내용입니다. 강의 교안 + 실습 내용 모두 업데이트 되었습니다. 일부 강의들에 대해서는 기존에 설명했던 내용과 동일한 경우에는 굳이 새롭게 영상을 만들지는 않았지만, 대부분의 섹션은 업데이트 계획중입니다. 기존 제목이나 분류 항목은 최대한 유지하면서, 영상을 새롭게 만들어서 업데이트 하고 있습니다. 지금 이 게시글을 작성하는 시점 기준으로 60% 정도가 완료되었습니다. 당초 계획은 7월까지였는데, 조금씩 미뤄지고 있네요. 나머지 강의들도 빠르게 업데이트 하도록 하겠습니다. 감사합니다.
- 0
- 2
- 84
Hỏi & Đáp
안녕하세요 라우트 과정에서 http프로토콜 -> lb 프로토콜 질문 있습니다.
안녕하세요, 이도원입니다. 강의에서도 설명 드린것처럼 LB:// 로 시작하는 프로토콜의 경우 직접 통신이 아닌 Service Discovery로부터 서비스의 위치 정보를 검색한 후에, Service Discovery(Eureka 등)를 통해 이동하게 됩니다. 말씀하신 내용이 맞습니다. 감사합니다.
- 0
- 2
- 43