안녕하세요 😊
제가 아는 내용을 이해하기 쉽고, 재미있게 설명드려 여러분들이 성장하실 때 행복함을 느끼는 개발자 최태현입니다.
(현) 캐치테이블[와드] 소프트웨어 엔지니어
(전) 스타트업 소프트웨어 엔지니어 리드
(전) 배달의민족[우아한형제들] 소프트웨어 엔지니어
(교육활동) Next Step 리뷰어 다수 참여, 공기관 & 스타트업 경진대회 강사 및 멘토, 스파르타 코딩클럽 멘토
한국과학기술원 (KAIST) 졸업
강의
수강평
- 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
- 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
- 자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
- 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
- 자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
게시글
질문&답변
30강 질문
안녕하세요! 🙂 성장하자님~ 항상 디테일한 부분까지 질문 주셔서 감사합니다. repository를 user를 다룰때는 repository라는 패키지를 따로 만들어서 했는데, 지금 강의의 book에 관한 repositorty를 따로 만들지 않고 인터페이스만 객체와 같은 패키지에 만들어서 extends로 jpa를 받기 때문에 따로 만들 필요가 없어서 이렇게 만든거라고 이해 했는데 맞게 이해한걸까요? 제가 질문을 정확히 이해한 것인지 모르겠지만JpaRepository를 extends하는 interface를 만들 때는 패키지를 repository 로 분리하지 않고,JdbcTemplate을 사용하는 Repository를 만들 때는 repository 패키지를 왜 분리했는가가 질문인 것 처럼 느껴집니다! 결론부터 말씀드리면... 개인 취향에 가깝습니다. 🙂어떤 분들은JpaRepository 이건 SQL을 직접 사용하는 Repository 이건 repository패키지로 분리하는 것을 선호하시고요!어떤 분들은@Entity 와 같은 패키지에 JpaRepository 및 관련 Repository (ex. Querydsl) 을 함께 넣으시는 것을 선호하시기도 합니다. 저는 개인적으로 후자의 취향을 갖고 있고, 프로젝트 내 일관성만 유지되면 어떤 방식이건 크게 다르지 않다 라고 생각하고 있습니다. 감사합니다. 🙏
- 0
- 1
- 24
질문&답변
20강 인터페이스
안녕하세요! ☺ 인터페이스에서 @Override 어노테이션을 붙이지 않은 것에 대해 문의 주신 것 같아요~ (타임라인 - 13:54)강의 상에서 코드 변경과 스프링 컨테이너의 의의를 설명드리기 위해 슈도 코드를 작성한 것으로 봐주시면 될 것 같습니다. 물론 자바에서는 코틀린과 달리 @Override 를 필수로 작성 하지 않아도 오버라이드 된 것으로 간주되긴 하지만 명확한 가독성을 위해 어노테이션을 작성해주시는게 좋습니다.감사합니다 🙇
- 0
- 2
- 26
질문&답변
15강 질문
안녕하세요~ 좋은 질문이십니다! 🙂 아마 질문 주신 내용은...PUT API (업데이트 API) 에서는 왜 객체를 함수의 매개변수로 사용하고DELETE API (삭제 API) 에서는 왜 단순히 String을 함수의 매개변수를 사용하였는가인 것 같아요! 우선 PUT의 경우 HTTP Body를 함수에 전달 할 수 있어야 하기에 @RequestBody + 객체 조합만 사용할 수 있습니다. 그래서 DTO 를 사용하게 되었고요DELETE는 HTTP query 를 함수에 전달하게 되는데 이때는 @RequestParam 으로 직접 특정 필드를 매개변수에 전달할 수도 있고, DTO와 같은 객체를 사용할 수도 있죠. 저는 개인적으로 매개변수가 1개 정도라면 DTO를 선택적으로 사용하고, 매개변수가 2개 이상이면 DTO를 높은 확률로 사용하는 편입니다. 🙂 답변이 도움이 되었으면 좋겠습니다. 감사합니다~ 🙏
- 1
- 2
- 21
질문&답변
10강 mysql 연결오류
안녕하세요! 성장하자님~ 🙂 다시 한 번 꼼꼼하게 복습하시니 너무 좋네요~Access denied for user.. 라는 에러는 대부분 AI 인턴이 얘기한 것처럼 비밀번호가 틀린 경우입니다!비밀번호가 맞았는지 꼭 한 번 확인해보시면 좋을 것 같습니다.감사합니다. 🙇
- 1
- 2
- 27
질문&답변
6강 복습중에 질문 있습니다
안녕하세요! 성장하자님 🙂 정말 좋은 질문이시네요~인프런 AI 인턴이 대답을 잘 해주었는데요! 스프링이 문자열로 된 HTTP 을 객체로 만드는 과정에서 (이를 어려운 말로 역-직렬화 라고 합니다) GET API를 객체화 하는 코드와 POST API를 개체화 하는 코드의 로직이 달라서 그렇습니다. 보다 자세한 내용은 “어떻게 생성자 없이 number1과 number2에 값이 할당된건지 모르겠습니다.(DTO관련)”에서 추가로 확인해보실 수 있습니다. (왜 스프링이 GET API를 객체화 하는 코드와 POST API를 객체화 하는 코드를 달리 구성하였는지까지는 저도 정확히 모르겠습니다.)감사합니다. 🙇
- 1
- 2
- 24
질문&답변
MySQL 연결 오류
안녕하세요! qkrwlsgh98님 🙂 정말 좋은 질문 감사드립니다.처음에 잘 되다가 몇 번 컴퓨터가 재부팅되면 해당 문제가 발생한다니... 참으로 기이하네요 🥲 우선 저도 올려주신 에러를 한 번도 본 적은 없어 검색해서 나온 결과나 GPT가 알려준 내용과 크게 다르지 않은 답변만 드리게 될 것 같습니다. 예를 들어, 해당 에러를 검색해보면https://hb-in99.tistory.com/159와 같은 글이 나오는데(사진)와 같은 방법으로 해결했다고 하네요 만약 조금 다른 접근을 원하신다면.. 처음이라 정말 어려우시겠지만, docker를 이용해 mysql을 구동해보시는 건 어떠실까 싶습니다.docker를 사용한다는 것은 쉽게 말해 컴퓨터 안의 또 다른 컴퓨터를 구성하는 것 입니다!그리고 그렇게 구성한 컴퓨터 안의 컴퓨터는 쉽게 종료하고 재시작할 수 있기 때문에 그 안에 mysql을 설치해 사용해보실 수 있거든요..!윈도우 MySQL 도커 와 같은 검색어로 구글링을 해보셔도 좋고, GPT와 함께 도전해보셔도 좋을 것 같습니다. 꼭 해결되셨으면 좋겠습니다. 감사합니다. 🙇
- 1
- 2
- 33
질문&답변
[23강] SuperTypeToken의 equals 관련 질문
안녕하세요! denia park님! 🙂 좋은 질문 감사드립니다. 🙇 아래 경우로 조금 더 쉽게 예를 들어볼게요!abstract class A { override fun equals(other: Any?): Boolean { if (this === other) return true if (javaClass != other?.javaClass) return false return true } }여기 제가 추상 클래스를 만들었습니다. 이제 추상 클래스를 익명 클래스화 해보겠습니다!! val a1 = object : A() {} val a2 = object : A() {} println(a1.javaClass == a2.javaClass)이렇게 되면 a1과 a2는 같은 클래스를 인스터스인 것 같지만, 사실 같은 추상 클래스를 구현 받는 서로 다른 익명 클래스이기 때문에a1.javaClass 와 a2.javaClass 는 서로 다르고 항상 false가 나오게 됩니다! 슈퍼 타입 토큰은 항상 익명 클래스와 함께 사용하다보니 해당 구문을 제거하게 되었습니다. 또 궁금하신 점 있으시면 편하게 질문 주세요~~ 감사합니다! 🙇
- 1
- 2
- 18
질문&답변
23강 타입 안전 이종 컨테이너 예제 관련 문의 드립니다.
안녕하세요! Teddy님~ 🙂 질문 주셔서 감사합니다!!"class generic.GoldFish cannot be cast to class generic.Carp (generic.GoldFish and generic.Carp are in unnamed module of loader 'app')" 와 같은 오류가 발생하는데,정상적으로 금붕어 리스트가 반환되는게 맞는지요 ? 제가 뭔가 놓친 부분이 있을까 궁금하여 문의 드립니다.로 문의 주신 내용이 핵심 같은데요..! 금붕어가 들어 있는데 List 로 타입을 받기 때문에 금붕어가 반환 되려다가 에러가 나오게 됩니다! 즉, 정상적으로 라는 단어가putOne으로 금붕어를 넣었으니 꺼낼 때도 금붕어다라는 관점에서 맞기도 하고요금붕어를 꺼냈으나 잉어로 형변환을 하려고 해 오류가 발생했다라는 관점에서는 아니기도 할 것 같습니다. 감사합니다. 🙇
- 0
- 2
- 32
질문&답변
강의 수강에 대한 질문입니다,
안녕하세요 성장하자님! 🥺 아무래도 코드 자체가 문법적으로 이해 되지 않는 상황이시라면 자바에 대한 공부를 조금 더 하고 오시는걸 추천드립니다! 결국 '서버 개발' 이란 것은 자바 라는 '언어'를 어느정도는 활용해 내 의도와 여러 CS 개념을 표현하는거라서요!!혹시 어떤 부분이 어려우신지 말씀해주시면, 성장하자 님께서 공부하시면 좋을 키워드를 몇 개 알려드릴 수 있도록 하겠습니다. 감사합니다. 🙇
- 1
- 2
- 42
질문&답변
스프링 sql오류
안녕하세요 성장하자님! 🙂 우선 MySQL이 아니라 H2로 연결된 것 까지는 확인하신 것 같아요. 그리고 처리해주신 것처럼, user 는 H2에서 예약어라서 users 라는 이름의 테이블을 사용할 수 있도록 하고, ddl-auto 옵션을 적절하게 (create 혹은 create-drop) 설정해주시면 문제가 해결되는데요!현재 근본적인 문제는 H2로 연결되었다는 것 같습니다. 13강에서 질문을 주셨으면 MySQL로 연결이 되어야 할 것 같아서요!🙂 혹시 yml 파일을 한 번 보여주실 수 있을까요?!
- 1
- 4
- 63