소개
저는 IT 엔지니어입니다. 언젠가 직업란에 "회사원?", "개발자?", "강사?" 어떤 단어를 선택해야 할 지 고민이 되었던 때가 있었습니다. 그러다가, IT 엔지니어라는 표현이 제가 잘 어울리는 직업명이라는 생각이 들어 지금까지도 직업란에는 "IT 엔지니어"라고 적고 있습니다.
직업이라는 것은 자신의 일을 나타내는 것이고, 일이라는 것은 재미있고, 도움이 되는 일이면 좋겠다는 생각을 가지고 있습니다. 누구나 다 원하는대로 일을 하며 살수는 없지만, 저는 제가 하는 있는 이 일을 좋아하는 있고, 잘하고 싶어하는 사람입니다. 개발자로써, 강사로써, 컨설턴트로써의 역할을 해 오면서, 매번 새롭게 출시되고 변화하는 IT 신기술을 따라가기에 급급하지만, 그래도, 남들보다 조금이라도 먼저 접하고, 전파하고, 사용하고 싶은 사람 중 한명입니다.
최근 관심을 가지고 있는 분야는 온라인 교육 컨설팅입니다. 그리고 관심있는 기술은 Cloud Native Architecture, Blockchain, Machine Learning, Kafka, Kuberbetes 등입니다. 이러한 기술은 실제로 강의도 하고 있고 업무에 적용해서 사용도 하고 있습니다. 하지만, 워낙 방대한 주제이다 보니, 아직까지도 계속 공부하고 있습니다.
머리속에 가지고 있는 것은 진정한 지식이 아니라고 합니다. 저는 제가 가진 지식과 경험을 다양한 방벙을 통해 공유하려 합니다. 그리고, 새로운 분야, 새로운 기술에 계속 도전하고 있는 IT 엔지니어가 될 것입니다.
- 現) 엔제이원컴퍼니 대표
- 現) 동국대학교 국제정보대학원 정보보호학과 대우교수
- 前) JP Mogan Chase AMJ Tech consultant (일본)
- 前) 삼성 SDS CMS 사업본부 책임 엔지니어
강의
전체6로드맵
전체1수강평
- 덕분에 쉽게 배웠습니다. 감사합니다!
yooshin cha
2024.04.24
0
- 유익합니다
김원집
2024.04.24
0
- ansible 에서 막히는데 해결 방법 제대로 안알려주네요.
cjmg1085
2024.04.23
0
게시글
질문&답변
2024.04.23
JPA를 이용한 개별 사용자 상세 조회 5분 21초
안녕하세요, 이도원입니다. 답변이 늦어 죄송합니다. Response Body에 전달 되는 데이터는 ResponseEntity로 반환 시 Bean(User.class 등)에 대한 모든 정보가 반환 되게 하지 않고 Filter를 통해 반환 하고자 하는 값들을 제어 할 수 있습니다. 아래 코드처럼 SImpleBeanPropertyFilter를 사용하시거나, User 클래스의 Proeprty에 @JsonIgnore를 명시적으로 표시해서 전달하지 않을 수 있습니다. 테스트하신 코드를 보지 못해 작업하신 결과의 정확한 과정은 파악하기 어려우나, 강의에서도 AdminUserController등을 생성해서 Response Body에 전달하는 값들을 제어하고 있습니다. SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter .filterOutAllExcept("id", "name", "joinDate", "ssn"); FilterProvider filters = new SimpleFilterProvider().addFilter("UserInfo", filter); // @JsonIgnore @Schema(title = "비밀번호", description = "사용자의 비밀번호를 입력해 주세요.") private String password; // @JsonIgnore @Schema(title = "주민번호", description = "사용자의 주민번호를 입력해 주세요.") private String ssn; 추가로 _links 값은 SPring HATEOAS 기능을 통해 하이퍼미디어 URI가 자동으로 생성되게 매핑된 데이터입니다. 추가 질문사항 있으시면 다시 글 남겨 주세요. 감사합니다.
- 0
- 2
- 72
질문&답변
2024.04.23
EntityModel과 ResponseEntity의 차이
안녕하세요, 이도원입니다. 말씀하신 내용처럼 Spring Boot에서는 ResponseEntity를 통해 클라이언트 요청에 대한 결과 데이터와 상태 등을 전달해 줄 수 있으며, EntityModel은 RepresentationModel의 하위 클래스로써, 반환하려는 데이터를 EntityModel로 Wrapping하면 Spring HATEOAS가 자동으로 표준 링크(ex, _self)를 포함시킬 수 있습니다. 추가로, 아래와 같이 POST 방식에서도 EntityModel을 사용하실 수 있습니다. 아래 예제에서는 회원 가입 후, 상세 보기를 하기 위해 URI를 제공하도록 작성되었습니다. (사진) 감사합니다.
- 0
- 2
- 74
질문&답변
2024.04.23
직접 생성하지 않은 주소가 생성되어 있습니다.
안녕하세요, 이도원입니다. Spring Boot와 Spring HATEOAS를 사용하여 개발된 RESTful API에서 응답 본문의 links 부분은 Spring HATEOAS 프레임워크에 의해 자동으로 생성됩니다. HATEOAS에서는 하이퍼미디어 기반 출력 데이터를 쉽게 생성할 수 있습니다. 또한, Spring HATEOAS에서는 self, next, previous와 같은 링크를 응답 데이터에 자동으로 추가할 수 있기 때문에, 개발자가 직접 URI를 하드코딩하지 않고도 API를 동적으로 탐색하는 방법을 제공할 수 있게 됩니다. 말씀드린, Spring HATEOAS는 응답에 자동으로 링크를 추가할 수 있는 여러 클래스와 메소드를 제공(RepresentationModel, EntityModel, WebMvcLinkBuilder 등)하고 있으며, 해당 API를 통해 개발자가 직접 하이퍼미디어 데이터를 추가하는 것도 가능합니다. 말씀하신 API들은 HATEOAS에 의해 자동생성 된 부분으로 보시면 될 것 같습니다. 추가 질문 사항 있으시면 다시 글 남겨 주세요. 감사합니다.
- 0
- 2
- 43
질문&답변
2024.04.23
spring boot 3.0 이후 handleMethodArgumentNotValid 메소드
안녕하세요, 이도원입니다. 작업하신 내용을 보면, handleMethodArgumentNotValidException 메소드에서 처리하려고 하는 예외가 BindException인데, ResponseEntityExceptionHandler 클래스에 이미 handleMethodAtgumentNotvalid 메소드의 인자로 사용되는 MethodArgumentNotValidException 가 이미 BindException을 상속 받아 구현되었기 때문에, 동일 한 두개의 핸들러가 존재하지 못한는 오류 인 것 같습니다. 아래와 같은 코드 형태라고 하면, 구현하신 handleMethodArgumentNotValidException 메소드는 삭제하시고, handleMethodAtgumentNotvalid 메소드를 재정의해서 BindException을 처리하게 해 보시면 될 것 같습니다. @ExceptionHandler(BindException.class) public final ResponseEntity handleMethodArgumentNotValidException(BindException ex) { ExceptionResponse exceptionResponse = new ExceptionResponse(new Date(), ex.getMessage() , ex.getBindingResult().toString()); // 클라이언트에게 상세정보 안보여주도록 false return new ResponseEntity (exceptionResponse, HttpStatus.NOT_FOUND); } @Override protected ResponseEntity handleMethodArgumentNotValid(MethodArgumentNotValidException ex, HttpHeaders headers, HttpStatusCode status, WebRequest request) { ExceptionResponse exceptionResponse = new ExceptionResponse(new Date(), "Validation Failed", ex.getBindingResult().toString()); return new ResponseEntity(exceptionResponse, HttpStatus.BAD_REQUEST); } 감사합니다.
- 0
- 2
- 36
질문&답변
2024.04.23
user-service-1.0.jar 파일이 만들어지지 않습니다.
안녕하세요, 이도원입니다. 작업하신 pom.xml 파일로 빌드 시 저희쪽에서도 동일한 오류가 발생하네요. lombok plugin에 문제가 있는 것 같습니다. 아래와 같이 최신 버전으로 변경해서 다시 빌드해 보시면 될 것 같습니다. org.projectlombok lombok 1.18.32 true 감사합니다.
- 0
- 2
- 67