스프링같은경우, 빈 형태로 객체가 컨테이너에 의해서 관리가 되어서 시작시 circular나 주입되지 않은 객체들을 파악할 수 있는데... 영상끝부분에 BCrypt나 Service에 대한 의존성을 koin에 추가하지 않았다면 런타임에서야 발견할 수 있는데.. 엔터프라이즈 혹은 기업에서 쓰기에 위험한 부분이 아닌가싶은데.. 이런경우는 어떻게 방지해야 할지에 대해서 질문드려봅니다!
CrudRepository, ExposedCrudRepository로 제네릭 인터페이스 추상화를 한것까진 좋습니다! 근데 스프링에서는 @Repository라는 애너테이션을 붙여줌으로써 AOP 포인트컷이랑 어드바이저에서 한번 더 예외를 래핑해서 오라클, MySQL, PostgreSQL 등 여러 벤더사들의 각각 다른 예외를 하나로 몰아서 DataAccessException으로 들어갈 수 있도록 해주는데, ktor도 그런 비슷한 기능이 있나요? 코드는 그대로 두고 연결 DB만 바꿔도 FK 오류인지, duplicated key 오류인지, lock time out 오류인지 그런것들도 다 추상화가 되는걸까요?
안녕하세요 강의 잘 보고 있습니다. 저는 현재 스프링 진영에서 백엔드 개발을 하고 있습니다. ktor이라는 것을 들어보긴 했는데, 막상 코드를 보면서 비슷한 부분도 있고 새로운 부분도 많네요! 강의를 보다가 궁금한 점이 있는데, 보통 리액트 서버는 3000번 포트로 띄우고 백엔드는 따로 실행해서 화면 테스트를 진행하곤 했는데, Ktor 강의에서는 인텔리제이 실행 한번으로 리액트 서버도 실행되고 같은 포트에 백엔드 호출이 가능한 것을 보고 어떻게 이게 가능한가 싶어서 질문 남깁니다!
안녕하세요 ktor이란 가벼운 백엔드 프로그램이 있어서 반가운 마음에 수강 신청하고 강의 듣고 있습니다. 전 개발 시에 항상 폴더경로와 패키지 경로는 같게 하고 다른 강의나 책에서도 패키지 명은 폴더를 따라 가던데 강의/소스 보니 패키지 명이 폴더를 안따라 가는거 같아서 물어봅니다. 예를 들어서 CafeMenu.kt의 파일은 com>example>model 에 있습니다. 그런데 패키지 명은 package com.example.domain.model 이라고 적혀 있는데 경로에서는 domain이 없어요... 그래서 패키지 명을 수정한다면 domain이 이 빠진 package com.example.model 라 작성하거나 domain 폴더를 생성하는게 맞지 않나요?? 흠 .. 뭐 이건 방식이긴 한데 빈 프로젝트에서 시작하는게 강의 듣는데 안 헛깔렸을꺼 같은데 ... 첫 ktor 샘플인 ktor-sample-world에서 plugins가 config로 변경된거 같아서 좀 당황했어요 ^^;; 원리 아무것도 모르고 시작할 땐 그냥 강사님의 이야기를 졸졸졸 따라 가는게 학생들의 마음이라 ... 뭔가 갑작스럽게 단계를 점프하면 고민을 많이 하거든요 ... 이거 폴더 변경되도 문제 없나 ... 내가 빈프로젝트를 만들어서 프로그램 코딩하는데 나도 config의 폴더를 plugins로 변경해야 돌아가는거 아니야.... 폴더명 변경했는데 안돌아가면 어떻게 하지 이런 생각이 갑자기 들었거든요 .. 어째건 저 패키지명 저렇게 해도 되나요??
java 의 datetime 라이브러리를 사용하게 됨으로써, exposed 에서나 kotlinx-serialization 을 통한 직렬화에서도 직접 custom serializer 를 만들어주거나, 별도의 라이브러리를 주입하여 처리해주는 부분이 늘어간 것 같아서 질문을 드리게되었습니다. kotlinx-datetime 라이브러리를 통해 datetime 을 핸들링하게 될 경우엔 kotlinx-serialization 을 통해 직렬화 및 역직렬화를 수행할때, 별도의 custom serializer 를 만들어주지 않아도 라이브러리에서 지원이 되어서요. (exposed 는 이번에 처음 사용해서 지원하는 타입들이 내장되어 있는지 조사해봐야할 것 같습니다.) java 의 datetime 라이브러리가 아무래도 아직 더 대중적으로 사용하는 라이브러리라서, 익숙해서 사용하신 것인지, 이유가 궁금합니다.