본문 바로가기

분류 전체보기146

[Spring] @ModelAttribute @RequestParam @RequestBody 차이 스프링의 @RequestMapping Handler Method 중 요청값을 받아올 때 자주 사용되는 것으로 다음 3가지가 있습니다. @ModelAttribute @RequestParam @RequestBody 특히 @ModelAttribute 와 @RequestParam 은 사용하는 방법이 비슷하여 "둘 다 똑같은거 아니야?" 라고 쉽게 착각 할 수 있습니다. (저 혼자만의 착각 일 수 있습니다.) 그럼 @ModelAttribute 와 @RequestParam의 차이를 알아보면서 추가로 @RequestBody는 또 어떤 기능이 있는지 알아보겠습니다. @ModelAttribute 메서드 인자에 @ModelAttribute 애노테이션을 사용하여 model에 있는 attribute에 접근할 수 있습니다. (.. 2021. 4. 15.
[JAVA] 커스텀 예외의 4가지 Best Practices 커스텀 예외를 구현할 때 참고하면 좋을 4가지 Best Practice가 있습니다. 4가지 추천사항들은 여러분의 코드와 API를 더 이해하기 쉽게 만들어주며 작성해야할 문서의 양도 줄여줍니다. 1. Always Provide a Benefit (항상 혜택을 제공하라) 자바 표준 예외들에는 포함되어 있는 다양한 장점을 가지는 기능이 있습니다. 커스텀 예외의 의도는 자바의 표준 예외들로 표현할 수 없는 정보나 기능을 제공하는 것입니다. 이것은 커스텀 예외를 만들 때 최우선으로 생각해야할 것입니다. 만약 위의 의도가 없다면 JDK가 이미 제공하고 있는 방대한 수의 예외들과 비교했을 때 우리의 커스텀 예외는 어떠한 장점도 제공하지 못하게 됩니다. 어떠한 장점도 제공할 수 없는 커스텀 예외를 만드는것 보다 오히려.. 2021. 4. 13.
[Java] equals() 와 hashcode equals() 와 비교연산자 "==" 자바 모든 클래스의 최상위 클래스 Object 에 정의된 equals 메서드는 아래와 같습니다. 객체끼리 비교연산자 "==" 로 비교한 결과를 반환해줍니다. 비교하는 두 객체의 참조값(객체가 저장된 주소값)이 같은지, 즉 두 객체가 동일한 객체인지 확인하는 메서드입니다. 자바에서 두 객체가 동등한지 비교할 때 흔히 equals 메서드를 사용합니다. 논리적으로 동등하면 true 반환 논리적으로 동등하지 않으면 false 반환 보통 값 객체의 경우 두 객체의 참조값이 아닌 상태를 가지고 비교를 하게 되는데 가장 대표적인 경우가 자바의 String 클래스 입니다. String 클래스는 내부에 저장된 문자열 값 자체를 비교합니다. 따라서 String str1 = "aa" .. 2021. 4. 12.
[우아한테크코스3기] 레벨1 회고 (feat. 레벨2 다짐하기) 우아한테크코스를 시작하고 어느새 2달이 지나갔다. 누군가와 프로그래밍에 대해서 이정도까지 의견을 주고받고 물어보고 했던적이 있었던가. 2달의 시간은 너무나 즐거운 시간이었다. 나는 게임을 할 때 흔히 말하는 솔플(솔로 플레이)을 좋아하지 않는다. 이유는 간단하게 말하면 솔플은 재미가 없기 때문이다. 혼자 열심히 성장해도 공유할 사람이 없으면 결국 자기만족일 뿐이다. "나는 오늘 레벨을 이만큼 올렸고 엄청 좋은 아이템을 먹었어!" "... 아.. 그..그랬어..?" 지금까지는 프로그래밍에 대해 이야기할 사람이 없었다. 그래서 한번은 스터디를 구해보려고 했는데 거주지가 부산이라 구하는게 쉽지않았다. 코로나가 창궐하는 시대에 여럿이 만나 학습한다는게 무섭기도 했다. 그때 접한것이 백기선님의 유튜브에서 진행하는.. 2021. 4. 11.
[Java] try-catch 문의 주의사항 (feat. try-with-resource) Java 의 예외 처리 문법인 try-catch에 대해 공부하고 정리하는 글입니다. 1. try-catch 문에서 하나의 try 에 이어서 여러개의 catch로 예외를 잡을때 예외의 순서에 주의 해야합니다. 하나의 try-catch문에서 IllegalArgumentException과 RuntimeException 두가지 예외를 잡으려 할 때 RuntimeException을 위쪽에 위치시킨다면 아래의 IllegalArgumentException을 catch 하는 문장에서 컴파일 에러가 발생합니다. 만약 예외가 상속 구조이고 상위 클래스(부모클래스)가 위쪽에 있다면 컴파일러는 에러를 발생시킵니다. 컴파일러는 "위쪽에서 이미 잡았던 예외인데 왜 또 잡으라그래?" 라고 합니다. 아래의 사진을 보면 Illegal.. 2021. 4. 10.