게시글
질문&답변
2024.11.11
checkout 해도 branch가 안 바뀌네요
안녕하세요!답변이 많이 늦었죠 죄송합니다혹시 git fetch origin해보셨을까요? 브랜치 정보를 먼저 로컬에 받아와야할것 같네요 https://github.com/larryjung/zcafe/tree/lecture/cafe-02-start 에 브랜치 내용이 있습니다~
- 1
- 1
- 23
질문&답변
2024.09.07
자바 LocalDateTime 직렬화 관련 질문
안녕하세요! 먼저 답변이 많이 늦어서 죄송한 점 양해 부탁드립니다 ㅠ넵 kotlinx-datetime 라이브러리를 사용하시면, java.time 의 LocalDateTime 대신kotlinx-datetime 의 LocalDateTime 을 사용하실 수 있고, 별도의 직렬/역직렬을 위한 코드나 어노테이션 추가는 필요 없습니다! 아래와 같은 기본 serializers 가 구현되어 있네요(사진) exposed 에서도 kotlin-datetime 을 지원하므로 아래처럼 그래들 모듈을 바꿔보시면 kotlin datetime 도 사용이 가능합니다.^```// implementation("org.jetbrains.exposed:exposed-java-time:$exposed_version")implementation("org.jetbrains.exposed:exposed-kotlin-datetime:$exposed_version")``` 다른 질문 있으시다면 편하게 물어봐주세요~!
- 1
- 3
- 65
질문&답변
2024.07.04
어떻게 ktor 실행시 같은 포트로 리액트 서버가 뜰 수가 있나요?
안녕하세요! 강의 수강해주시고, 의미있는 좋은 질문도 남겨주셔서 감사합니다.^^인프런 AI 답변 퀄리티가.. 훌륭하네요.ㅎㅎ 제 방식대로 개념적인 부분을 추가로 설명드릴게요!결론적으론 Ktor 뿐만 아니라 스프링에서도 같은 포트로 화면(html) 을 서빙할 수 있습니다. 짚어드리고 싶은 부분은,리액트 서버라고 하셨는데 엄밀하게는 리액트는 자바스크립트 웹 프레임웤 에 불과합니다.강의에서 보여드린 부분은 리액트로 만들었지만 최종 산출물인 index.html, js, css 파일을 ktor 서버가 응답할 수 있게끔 리소스 설정을 했던 것입니다~ reactjs 혹은 vuejs 같이 웹프레임웤으로 화면 개발을 할때는 live reloading 이나 여러가지 개발편의를 위해 대표적으로 3000포트로 개발서버가 띄워지게끔 되어있습니다~강의에서는 이미 준비된 프론트 소스를 사용하기 때문에, 보여드린적이 없지만 강의 자료 준비할때는 저도 3000포트로 프론트 개발서버를 띄워놓고 개발을 했습니다.^^ 이 또한 개발을 마친 후에 배포할때는 ec2와 같은 서버에 nginx 등 웹서버를 설치하고 웹서버가 index.html, javascript, css 를 서빙할 수 있게끔 경로 설정을 해 주어야 하지요. 현재의 많은 서비스들은 화면을 서빙하는 웹서버(nginx)와 뒷단에서 json 등을 처리하는 백엔드 서버(springboot)로 아키텍쳐가 나뉘어 있는데스프링에서 html 을 서빙하고자 한다면 springboot 가 html 및 json 모두 서빙하게끔 설정했다고 보시면 되고, 강의에서가 딱 그런 모습입니다~ 저도 실무에서 일부 사내 시스템 같은 경우는 스프링에서 리액트 코드의 산출물인 index.html 을 서빙하는 구조로 만든 것 도 있습니다. (꼭 그렇게 해야할 이유가 있지않는 이상 권장하지는 않아요.^^)
- 1
- 2
- 140
질문&답변
2024.06.17
패키지 폴더 domain이 없네요.
안녕하세요! 브랜치 lecture/cafe-01-start 에서는 CafeMenu 클래스의 패키지가 폴더구조와 달랐네요~ㅠ 저도 인지하진 못하고 있었습니다. 강의용 소스를 준비하던 중 실수가 생긴것 같습니다..😭말씀주신대로 패키지와 폴더경로는 일치시키는게 일반적입니다. 짚어주신 부분은 제 실수이지만 클래스의 패키지 선언과 폴더구조가 달라도 패키지는 명시한 대로 따라가게됩니다. (보통의 경우는 이런 실수를 하지 않으니 경험하실 일이 없을것같아요) 제로베이스에서 바로 따라하실 수 있도록 준비해도 괜찮았을텐데, 강조하고 싶은 부분 위주로 구성하다보니 생략된 부분들에서 조금 당황하셨을것 같습니다~ㅜ 본 강의를 시작으로 다른 것들을 준비하고 있는데, 좋은 의견 주신것들 반영해보도록 하겠습니다.^^ 🔥🔥
- 1
- 2
- 138
질문&답변
2024.06.05
jar 배포 시 frontend 페이지에 접속이 안되는 이슈
안녕하세요. 정말 좋은 질문을 주셔서 저도 하나 배워갑니다!API 서버로만 사용했다보니 개념적으로 놓친 부분이 생겼네요.😅 결론적으로useResources 옵션을 주고 resources 하위에 frontend 폴더를 이동시켜야 jar 에 포함되는게 맞습니다.jar 에 관련 파일이 포함되었는지는 아래 명령어로 확인하실 수 있어요.$ jar tf build/libs/zcafe-all.jar | grep frontend(사진)반대로 강의 처럼 resource 옵션을 주지 않으면 jar에 포함되지 않습니다.🙋♂ 그럼 왜 강의에서 resources = false 인데 화면이 정상응답했는지? 는, jar 를 실행한 환경에서 ./frontend 경로에 index.html 파일이 있었기 때문이었어요. (프로젝트 root 경로에서 실행했었죠)jar 를 다른 위치로 옮겨서 배포를 하고자 할 때, resource = false 로 하고자 하면 소스에 명시한 경로에 프론트 파일을 두어야 해요. 서버 소스 배포주기와 무관하게 화면 소스만 별도로 관리하고 싶을때 유용한 옵션이 되겠네요!(사진)
- 1
- 2
- 192
질문&답변
2024.06.03
혹시 kotlinx-datetime 라이브러리를 사용하지 않으신 이유가 있으신가요?
안녕하세요 JI HUN LEE 님! 좋은 질문 주셔서 감사해요. kotlin 과 ktor 에 관심을 갖고 계신 수강생분들이 충분히 궁금해 하실 수 있는 내용이라 생각합니다.👍아무래도 제가 자바진영에서 시작했다보니 자바의 datetime 를 기본적으로 선택했고, ktor 와 주변기술들(serialization, exposed 등) 을 사용하면서 안되는 부분을 해결해보는 방향으로 갔던 것 같습니다. 질문 주신것처럼 kotlinx-datetime 라이브러리를 사용한다면 별도의 커스텀을 하지 않고도 직렬화/역직렬화가 가능할 것으로 예상이 되구요, 찾아보니 exposed 에서도 exposed-kotlin-datetime 모듈을 지원하고 있습니다. (https://github.com/JetBrains/Exposed) 추후 시간을 내서 완성 소스코드를 kotlin-datetime 버전으로도 만들어 비교하실 수 있게 알려드리도록 하겠습니다~!
- 1
- 2
- 292
질문&답변
2024.06.01
첫번째 Ktor 서버 띄워보기 전에 강의 하나가 빠져있는것 같습니다.
안녕하세요! 먼저 수강해 주셔서 너무 감사드립니다. 👍네 충분히 오해가 있을 수 있어 순서는 반영하도록 하겠습니다! 다른 부분에서도 얼마든지 편하게 질문 주세요~^^
- 1
- 2
- 187