講義
受講レビュー
- ホドルマンの腹痛開発ショー (SpringBoot、Vue.JS、AWS)
- ホドルマンの腹痛開発ショー (SpringBoot、Vue.JS、AWS)
- ホドルマンの腹痛開発ショー (SpringBoot、Vue.JS、AWS)
- ホドルマンの腹痛開発ショー (SpringBoot、Vue.JS、AWS)
投稿
Q&A
Deprecated 관련 사항들
안녕하세요. 호돌맨입니다.질문을 남겨주셔서 감사합니다. 저는 deprecated된 부분을 발견하면 그때마다 확인한 뒤, 새롭게 제시된 방법으로 코드를 수정하는 편입니다.예를 들어, callA 메서드가 deprecated되어 callB를 사용하라고 한다면, 가능하면 callB 메서드를 사용합니다. 하지만 새롭게 제시된 방법이 도구(라이브러리, 프레임워크 등)의 최신 버전을 요구하는 경우도 있습니다.이럴 때는 해당 도구를 업데이트할지 여부를 결정해야 하는데, 테스트 케이스가 있더라도 업데이트는 언제나 쫄리는 게 사실입니다.영향 범위가 크지 않은 도구라면 괜찮지만, 그것이 스프링 부트 같은 녀석이라면 이야기가 좀 달라집니다. 본래 제 성격은 바로바로 파괴적으로(?) 업데이트하는 편이지만,조직 내에서는 여러 가지를 고려해야 할 부분들이 생기기 마련이죠.그래서 보통은 조금 미뤘다가 한 번에 정리해서 업데이트하는 방식을 택합니다. ‘항상 up-to-date하게 유지하는 방법이 무엇이냐’는 질문을 주셨는데요,IntelliJ는 build.gradle에 명시된 라이브러리의 최신 버전 존재 여부를 알려줍니다.또, 제가 사용하는 도구들의 기능이나 버전 동향을 종종 찾아보는 편이기도 합니다. 심지어 컴퓨터를 포맷하더라도,의도적으로 개발 환경을 직접 손수 세팅하며도구들의 근황을 하나씩 살펴보고 최신 버전을 설치하는 걸 좋아합니다. 쓰고보니 광인 같네요 감사합니다.
- 0
- 2
- 24
Q&A
강의 듣다가 도커 이미지 생성시 각각도 가능하나 그렇게 사용하는데가 많은지 모르겠다라는 말을 듣고 남김니다
안녕하세요, 호돌맨입니다. 저희 회사에서 운영하는 주요 애플리케이션들은 주로 하나의 컨테이너로 구성하는 방식을 사용하고 있습니다.docker-compose를 통해 여러 컨테이너로 나누면 장점이 없는 건 아니지만, 관리가 복잡하고 정신이 사나워서 오히려 단점이 더 크다고 생각해요. 그래서 보통은 서비스별로 Dockerfile을 작성해서 이미지로 보관하는 방식을 선호합니다.물론 로컬 개발 환경이나 테스트 환경을 구축할 때는 docker-compose를 사용하기도 합니다. 다만, 이게 저만의 구시대적인 생각일 수도 있으니, 다른 분들 의견도 꼭 들어보시는 게 좋을 것 같습니다. p.s. 현실적으로 운영 환경에서 DB를 컨테이너로 띄우는 경우는 거의 없다고 봅니다.
- 0
- 2
- 93
Q&A
logout 후에 login 페이지 이동은 어디서 시켜주는건가요?
안녕하세요. 호돌맨입니다.질문을 남겨주셔서 감사합니다.Spring Security Config(SecurityConfig.class)에 보시면 로그아웃과 관련된 설정들을 할 수 있습니다.(사진)이때 logoutSuccessUrl값으로 로그아웃 후 이동할 주소를 지정할 수 있습니다.(사진)만약 값을 지정하지 않는다면 LogoutConfigurer.class 에 지정된 기본값 /login?logout 을 사용하게되겠죠.이와같이 시큐리티에서는 인증 성공/실패, 로그아웃 성공/실패, 권한 없음, 로그인필요 등 다양한 커스텀 포인트를 제공하고 있기때문에 한 번 살펴보시면 좋을것 같습니다. 감사합니다.
- 0
- 1
- 171
Q&A
다중 데이터를 삭제 할 때
안녕하세요. 호돌맨입니다.질문 감사합니다.여러개의 id를 기반으로 entity를 삭제할때 질문이시군요그런데 보내주신 코드를 보아하니.. 우리는 먼저 이런 부분을 생각 해야합니다. 여러개를 한 번에 조회하고 한번에 삭제하는 경우클라이언트가 서버로 1부터 100까지 (1,2,3,4,5...100) 총 100개의 id를 던지며 삭제하기를 희망한다고 해봅시다.그런데 만약 id=55의 게시글이 존재하지 않는다면 어떨까요?. 클라이언트 버그로 존재하지 않는 id를 요청 한 걸수도 있고 이미 삭제된 게시글 일수도 있겠죠. 그런 상황에서 1번 케이스는 클라이언트에게 적당히 오류를 뱉어줄 방법이 없습니다. 100개의 게시글이 아닌 99개의 글을 삭제한 건 클라이언트가 기대한 부분이 아니기 때문에 적당히 예외 처리를 해야할 것 같습니다.하지만 클라이언트에게 그런 오류를 응답하는게 맞을까요? 이거는 삭제하는 대상, 목적 등에 따라 다릅니다.클라이언트 입장에서는 요청시 "id 100개 던질테니 꼭 모두다 삭제 해야되고, 1개라도 실패하는 케이스가 있으면 안돼"를 기대할수도 있고 "id 100개 던질테니 삭제 되던가 말던가 알아서 해"일수도 있겠죠.그렇기 때문에 클라이언트 개발자와 이야기를 나누고 삭제 처리의 목적 등을 우선 생각해 볼 필요가 있습니다."100개가 모두다 삭제 되어야 해?, 만약 1개라도 삭제가 안되면 어떻게 할까? 오류 메시지를 줄까? 아니면 99개는 삭제되지 않은 1개에 대해서만 응답리스트에 담아 줄까?" 제가 가정하는 상황에서 id 100개 조회 성능은 크게 상관없을것 같습니다.그러면 아래 느낌의 코드를 만들 수 있겠죠.public void postAllDelete(List postIds) { List posts = postRepository.findAllById(postIds); var notExistsIds = []; if (postIds.size() != posts.size()) { // 검사 후 에러 notExistsIds = 요청했지만 존재하지 entity의 id 얻기(); } postRepository.deleteAll(posts); return notExistsIds } Soft Delete 케이스실제 entity를 삭제하지 않고 deleted column을 둔 뒤에 soft delete하는 상황도 생각 해보셔야합니다. 데이터가 많은경우100개 정도는 상관 없겠지만, 삭제하는 데이터가 정말정말 많은 경우는 배치 처리를 고려하셔야 할 수 있습니다. 감사합니다.
- 0
- 2
- 209
Q&A
querydsl Q class 이슈
안녕하세요.제가 퇴근중이라 자세히 확인이 불가능한 상황인데요혹시 제가 올린 강의자료(프로젝트)를 인텔리제이에 불러오셔도 그런지 문저 확인 해주시면 감사하겠습니다.
- 0
- 2
- 328
Q&A
[vite] http proxy error: /auth/login
안녕하세요. 호돌맨입니다.해당 코드를 제 컴퓨터에서 실행해보니 정상적으로 작동하고있습니다.아마 질문자님의 컴퓨터/개발환경에 문의제로 의심되는데요 이미 말씀 해주셨으나 https://wiki.mcneel.com/ko/zoo/window7firewall 이 링크대로 방화벽 허용을 하신것 같은데 그래도 발생하는 문제면https://open.kakao.com/o/snQ6aljd 이쪽 카카오톡 1:1 대화로 연락을 부탁드립니다.원격으로 조사를 해봐야할것 같습니다.감사합니다.
- 0
- 2
- 653
Q&A
GitHub Collaborator 초대 관련
안녕하세요.초대완료 했습니다. 감사합니다.
- 0
- 2
- 186
Q&A
Window에서 Vue.js 설정
안녕하세요. 호돌맨입니다.기본적인 개발 환경으로는 WSL2, git-bash 정도를 설치하시면 좋을것 같습니다.Node.js 및 npm을 설치, 실행 할 수 있는 환경을 만들어주시면 좋을것 같습니다. React, Vue.js 모두 기본적인 실행을 하는데까지는 큰 차이가 없습니다.막히는 부분이 생기면 질문 주시면 답변 드리도록 하겠습니다.
- 0
- 2
- 273
Q&A
(솔루션 수정)'tsyringe' Error: TypeInfo not known for "클래스명"
import {AxiosHttpClient, HttpClient, type ResponseHandlerOptions} from '@/features' @singleton() export class AuthorityApi { constructor(@inject(HttpClient) readonly httpClient: AxiosHttpClient) {} // 생략 } AuthorityApi의 생성자 주입이 안되는 상태입니다.때문에 외부에서 container.resolve(AuthorityApi)가 안먹히는 상황입니다.위 코드와 같이 AxiosHttpClient를 직접 지정해서 해결할 수 있습니다.혹은 tsyringe 예제 문서와 같이 interface를 이용해서 주입할수도 있긴합니다.관련링크: https://github.com/microsoft/tsyringe?tab=readme-ov-file#example-with-interfaces
- 0
- 2
- 647
Q&A
collaboator로 초대받을 수 있을까요??
앗, 답변을 안남겼군요.초대완료 했습니다.
- 0
- 2
- 249





