소개
안녕하세요 😊
제가 아는 내용을 이해하기 쉽고, 재미있게 설명드려 여러분들이 성장하실 때 행복함을 느끼는 개발자 최태현입니다.
(현) 와드 소프트웨어 엔지니어
(전) 스타트업 소프트웨어 엔지니어
(전) 우아한형제들 소프트웨어 엔지니어
(교육활동) Next Step 리뷰어 다수 참여, 공기관 & 스타트업 경진대회 강사 및 멘토, 스파르타 코딩클럽 멘토
한국과학기술원 (KAIST) 졸업
강의
전체6수강평
- kotlin에 대해 너무 잘설명해주십니다.
mj0318.song
2024.07.17
1
게시글
질문&답변
2024.07.26
h2 콘솔 접근 불가
안녕하세요! 마이티님! 우선 의심되는 부분은 " local로 돌려도 화면상에 mysql연결이 된 거 같이 데이터는 그대로 입니다 ." 라는 부분입니다! H2가 동작해야지만 올바른 URL을 이용해 h2-console에 접근할 수 있는데요! jdbc:h2:mem:library 라고 입력해주신게 맞다면 올바른 URL을 잘 써주신 것 같고 h2-console로도 접속한게 맞으니 한 가지 의심되는 부분은 H2가 정말 동작하고 있는가 입니다. 다음과 같은 순서로 해결해보시면 좋을 것 같습니다! local profile에서 H2를 쓰고 있는지 MySQL을 쓰고 있는지 제대로 확인해본다. 제대로 확인하는 방법은 서버를 실행시킨 이후 화면이나 API를 통해 데이터를 넣어보고 MySQL에 데이터가 들어갔는지 확인해볼 수 있습니다. 만약 MySQL을 쓰고 있다면, local profile에서 왜 MySQL을 쓰고 있는지 확인이 필요합니다. 예를 들어 application.yml 설정에서 mysql 설정 부분을 무언가 놓쳤다면, 위에 있는 설정을 아래 있는 설정이 덮어쓸 수도 있습니다. 만약 MySQL을 쓰고 있다면, local profile에서 정상적으로 H2를 쓰도록 바꿀 경우, 위의 문제가 해결될 것으로 보입니다! 한 번 해보시고 또 안되는 부분 편하게 질문 올려주세요! ( application.yml 파일 전체를 첨부해주셔도 좋을 것 같습니다. 감사합니다! 🙏
- 0
- 2
- 26
질문&답변
2024.07.26
Job 질문이 있습니다
안녕하세요 갸나다로님! 🙂 질문 주셔서 감사합니다. 결론부터 말씀드리면, 작성해주신 코드는 job 객체를 변수에 담더라도 다음 코드로 넘어갔는데, delay를 만나서 launch 안의 코드가 실행된 것 입니다! delay(1_000L) 함수 호출을 제외하고 실행시켜보시면, job을 만들자마자 job.cancel() 이 호출되며 표준 출력 없이 프로그램이 종료될거에요! 🙂 또 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~ 감사합니다! 🙏
- 1
- 1
- 29
질문&답변
2024.07.26
예외 날리는 이유에 대해서
안녕하세요, 마이티님! 🙂 좋은 질문 감사드립니다. 보다 자세한 비교를 위해서는 작성해주신 코드 스타일을 봐야 할 것 같아요! 다만 대략적으로 라도 예외를 날리는 이유를 설명드리면 다음과 같습니다. [1. 예외 상황] 일반적으로 우리가 프로그래밍을 할 때 작성하는 코드는 수많은 가정이 들어 있습니다. 가장 대표적으로 List 에서 원소를 가져오는 get() 메소드는 List 가 갖고 있는 범위 내의 원소에 접근한다는 가정 으로 이루어져 있죠. List nums = List.of(1, 2); nums.get(5); // 5번 인덱스를 가진 원소는 없기 때문에 예외 발생 때문에 그러한 가정 이 어긋나면 예외를 던지게 됩니다. 비슷하게 우리가 작성한 대출 로직 역시 DB에 존재하는 유저가 DB에 존재하는 책을 빌린다는 가정 이 들어 있어요. 따라서 이러한 가정에 어긋나면 예외를 던지는 것이 일반적인 처리라 할 수 있겠죠! [2. HTTP 상태 코드] 또 다른 이유도 있습니다. 바로 HTTP 상태 코드인데요, 우리가 만든 API가 정상적으로 동작하지 않았을 경우에는 200 OK를 반환 하는 것이 아니라 다른 상태 코드를 반환해야 해요! 강의에서는 단순히 예외를 던져 500 Server Internal Error를 던졌지만, 상황에 따라서는 @RestControllerAdvice 와 같은 기능을 활용해 404 Not Found를 던져 조금 더 명확한 에러 상황을 알려주기도 합니다. 혹시 작성하신 코드를 알려주시면, 조금 더 자세한 비교와 함께 답변 드릴 수 있도록 하겠습니다. 답변이 도움이 되었으면 좋겠습니다. 감사합니다! 🙏
- 1
- 1
- 27
질문&답변
2024.07.24
orElseThrow에 관해서
안녕하세요 마이티님! 🙂 정말 좋은 질문 감사드립니다. 결론부터 말씀드리면 상황에 따라 추가적인 예외 처리 가 필요한 것이 맞고, 실무에서는 대부분 경우 추가적인 예외 처리를 하는 편입니다. 이와 관련해서는 @RestControllerAdvice 를 찾아보시면 더 많은 정보를 얻으실 수 있습니다. 다만 " 예외 처리 "라는 것 자체가 요구사항에 의존적이라는 것은 말씀드리고 싶습니다! 😊 예를 들어 저희가 강의에서 구성한 간단한 도서관리 사이트는 에러가 발생했을 때 "서버에서 에러가 발생했습니다"와 같은 에러만 띄워주면 되었고 이런 요구사항을 처리하기 위해서는 서버에서는 데이터가 없는 예외적인 상황에 HTTP 응답 status를 200이 아닌 값으로 보내주고 클라이언트에서는 응답 status가 200이 아닌 값일 때 alert을 띄워주면 되기에 이 역시 " 예외 처리 "를 했다고 할 수 있습니다. 다만 만약 요구사항이 다르면 또 다른 예외처리가 적절하게 필요하죠. 예를 들어 로그인을 했을 때 아이디가 없는 것인지 비밀번호가 틀린 것인지 구분하고 싶다면 지금 방식으로는 둘을 구분할 수 없기에 다른 방식이 필요합니다. 답변이 도움이 되었으면 좋겠습니다. 감사합니다! 🙏
- 1
- 1
- 35
질문&답변
2024.07.19
시작도 하기 전에 계속 오류가 납니다.
안녕하세요 도형님! 에러가 나오고 있군요! 😭 보내주신 첫 번째 사진은 자바 8이 설치되어 있는 상황에서 자바 11 프로젝트를 실행해서 발생한 에러 같습니다! 그리고 자바 11을 설치하고도 다시 나온 에러가 아래 이미지인 것 같은데요! 보내주신 이미지에는 에러가 발생했다는 사실 뿐, 어떤 원인으로 어디서 에러가 발생했는지는 나와 있지 않습니다 😭 에러가 발생한 내용의 다른 탭을 보시면 다른 내용이 나와 있을 텐데, 그 내용을 확인해야 원인을 유추할 수 있고 그래야 해결할 수 있을 것 같습니다. 추가적인 정보 주시면 한 번 확인해보도록 하겠습니다. 감사합니다 🙏
- 0
- 1
- 71