본문 바로가기

코딩

(152)
[JAVA]예외는 언제 사용해야할까? 요즘 공모전을 나가면서 하루에 10시간은 개발하는 것 같다.. 방학이라 가능.. 점점 프로젝트 규모가 커지면서 예외의 필요성을 느꼇다. 근데 어떤 글에서는 Exception, try-catch는 최적화도 안되고 고비용이다. 그냥 null을 반환하거나 정의된 상수값을 반환하라는 글을 본적이 있다..(예외를 남발하지 말라는 글이었음.) 근데 분명 우린 사용자 정의 예외를 만드는 방법, throw new RuntimeException~을 배웠는데 안쓰는 건 이상하다. 그래서 과연 어떤 상황에서 예외를 쓰면 좋은지 알아보고자 한다. 아래의 블로그 참조하자..꼭꼭 보자!!.. 내가 여러개 보고 엄선한거니까.. 읽을 가치가 있다. https://tecoble.techcourse.co.kr/post/2020-08-1..
DTO <->Entity 변환. converter? vs toEntity(), toDTO()? # 이를 지원하는 많은 라이브러리들이 있지만 라이브러리의 기술을 제대로 알지 못하면 사용하지 않는다는 생각때문에 귀찮아도 코드로 구현하려 한다. 1. 처음에는 DTO - Entity 변환하는데 converter를 사용하려 했다. 근데 그것보다는 static으로 함수를 만드는게 더 깔끔하다는 생각을 했다. DTO-Entity변환 메소드를 컨트롤러의 파라미터에 자동 바인딩을 사용해야하는 것도 아니라서 굳이 converter로 구현할 필요가 없다고 생각했다. 그리고 converter로 다 작성하면 너무 많은 converter가 생겨서 딱봐도 뭔가 잘못된거 같은 느낌이 들었다. 관리비용이 너무 많이 들 것 같은 느낌.. Entity 클래스에 toEntity()를 , DTO클래스에 toDTO()를 Static 메..
stack trace읽는 법. 너무 좋은 글이라 저장! https://okky.kr/article/338405 OKKY | 초보 개발자를 위한 스택트레이스 읽는 법 몇 년 전에 네이버 카페에 썼던 글인데, 답변을 달려다 보니 링크가 안되서 이 곳에 옮겨 적습니다. 초보 개발자분들이 제대로 된 디버그 방법을 배우지 못해 오류가 나면 무턱대고 검색부터 하 okky.kr 구글링 하다가 좋은 글을 발견해서 남겨놓음.
라이브러리 사용에 대한 좋은 인사이트 https://better-dev.netlify.app/java/2020/10/26/compare_objectmapper/ Object Mapper 성능 비교 Object Mapper와의 만남 세상에 수많은 라이브러리들이 존재한다. ‘이런게 불편한데.. 이런걸 구현해주는 라이브러리가 없을까?’ 있다. 우리가 생각하기에 ‘필요한’, ‘있으면 좋겠다’ 싶은 better-dev.netlify.app java의 DTO-entity변환에서 자주 사용하는 라이브러리인 ModelMapper와 MapStruct의 성능에 대한 글이다. ModelMapper는 reflection으로 복사를 처리해서 성능이 안좋다. 추천하지 않는다고 함. 어노테이션 기반의 MapStruct를 사용하도록 하자. 라이브러리를 사용할 때 다들 ..
ModelMapper 를 사용할 때는 @NoArgConstructor있어야 한다.! 그렇다.. 다른 글에서 말했지만 reflection기반의 ModelMapper사용하지말고 어노테이션 기반의 MapStruct를 사용하자.
AWS linux Caused by: java.net.Socketexception: Permission denied 해결 스프링 부트로 프로젝트를 하고 aws에 올리던 와중 Caused by: java.net.Socketexception: Permission이 발생. java -jar ~.war(또는 jar)를 실행하고 나니 이런 에러가 뜬다. AWS linux ubuntu이다. 리눅스는 일반사용자에게 well known port(~1024) 사용권한을 주지 않는다. -> sudo로 실행하면 해결가능! 아래는 내가 실행을 쉽게 하기 위해 진행한 쉘스크립트이다. 먼저 BackEnd라는 디렉토리로 이동(git에 BackEnd라고 레포지토리를 만들었다. git clone한 상황임.) build할 때는 test를 진행하지 않게 했다. (-x test 옵션. 시간차이 꽤 많이 난다.) t2.micro라서 너무 느렸다..(swap 메..
SpringBoot Map으로 파싱하기. Jackson @ OAuth를 진행하던 중 아래의 문자열을 파싱해야하는 상황이 왔다. 아래의 형식은 네이버 OAuth 응답 형태임. 아래의 JSON을 어떻게 파싱하나 궁금했다.. 객체로 바인당 하려면 계층 구조 때문에 객체를 2개 정의해야하는 상황임.. 귀찮았다. 그냥 Map으로 받으면 알아서 해주지 않을까? jackson이 어떻게 동작하는지 궁금했다. jackson은 스프링 부트에 기본적으로 포함되어 있으므로 별도의 설정을 하지 않아도 된다. 컨트롤러에서 json->object 바인딩을 할 때 Jackson으로 파싱, 바인딩한다. {resultcode=00, message=success, response={id=22323-O8aLaUSxljfFZ52g4, age=20-29, gender=M, email=32131@g..
springboot OAuth 네이버 아이디로 로그인 @ 처음에 네이버 로그인을 구현할 때 매우 힘들었던 기억이 있어서 남겨놓으려고 함. 기본적으로 아래에 있는 OAuth 순서를 잘 살펴보자. 본 그림 중에 젤 자세하다. 글을 읽다가 이해가 안되면 수시로 올라와서 보도록 하자. @ 먼저 혼자 하고싶고 OAuth에 대충 안다면 네이버 developers들어가서 API명세와 같이 다른거 보지말고 튜토리얼 - web애플리케이션 보면 된다. 설명이 잘되어있음. https://developers.naver.com/docs/login/web/web.md Web 애플리케이션 - LOGIN 네이버 로그인은 서버 사이드 언어인 PHP나 Java로 개발한 웹 애플리케이션에도 적용할 수 있습니다. 또한 프런트엔드에서 사용하는 JavaScript를 사용해도 적용할 수 있습니다...