본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ

Spring7

[java] pojo란 무엇인가?(Plain Old Java Object) 작업을 하다가 뜬금없이 pojo 라는 단어를 듣게 되었다. 고유명사인가? 무슨 의미가 있나 싶어서 찾아봤는데, Plain Old Java Object 의 줄임말로써 마틴 파울러 라는 사람이 고안한 "오래된 순수한 자바 객체", "그저 자바 객체" 라는 의미로서 사용되는 것 같다. pojo라는 개념이 개발하는데 왜 쓰이는가? 굳이 쓸 필요가 있을까? 이런거 모르고서도 잘만 개발해왔는데, 판단하기 위해 pojo가 뭔지 정리해보려한다. pojo가 뭘까? pojo란, 이름 그대로 "순수한 객체, 보통 객체, 간단한 객체"를 의미한다. Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어이다. 2000년 9월에 마틴 파울러, .. 2023. 7. 20.
[spring] Logging Facade(로깅 퍼사드) 와 Logger(로거) Logging Facade : - 로거 API를 추상화해둔 interface (Commons Logging, SLF4j ) Logger : 로깅을 제공하는 class (Log4j, Log4j2, Logback (로거)) 스프링 부트는 Commons Logging 를 기본으로 사용 스프링 개발 당시 SLF4j가 없어서 하지만 최종적으로 Logback(SLF4j의 구현체) 으로 찍히게 된다. 스프링 부트 로깅 --debug (일부 핵심 라이브러리만 디버깅 모드로) --trace (전부 다 디버깅 모드로) 컬러 출력 : spring.output.ansi.enabled 파일 출력 : logging.file or logging.path 로그 레벨 조정 :logging.level.패키지 = 로그 레벨 커스텀 로그 .. 2023. 7. 13.
[Spring] RequestEntity 사용하기, http 기반 응답 구현하기 Spring Framework에서 제공하는 클래스 중 HttpEntity라는 클래스가 존재한다. 이것은 HTTP 요청(Request) 또는 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스이다. HttpEntity 클래스를 상속받아 구현한 클래스가 RequestEntity, ResponseEntity 클래스이다. 별도 포스팅으로 ResponseEntity를 설명하려함에도 같이 적는 이유는 RequestEntity, ResponseEntity가 세트로 사용되기 때문이다. 같이 사용함 으로써 간편하게 rest 전송 기능을 구현할 수 있다. 우선 RequestEntity에 대해 알아보자. public RequestEntity(@Nullable T body, @Nullab.. 2023. 6. 30.
[이클립스] lombok 인식 안되는 이유 이클립스로 개발하는데 빌드 툴에서 dependency로 lombok을 불러올 수 있습니다. lombok을 빌드해서 실행하는데 문제는 없지만, IDE에서 lombok 인식을 못하는 에러가 발생합니다. 그럴땐 IDE에 lombok을 직접 추가해줘야 하는데, 다음 사이트에서 lombok을 다운로드 받아줍니다. https://projectlombok.org/ Project Lombok projectlombok.org 다운로드 받은 뒤 실행하면, eclipse 가 설치된 경로를 찾아준다. 뒤에 Install / Update 를 누르면 설치가 완료되며, 프로젝트를 열 고 나서 rebuild를 해주면 됩니다. 그 뒤엔 lombok이 인식 잘 되었습니다. 혹시 안된다면 댓글 남겨주길 바랍니다. 도움드릴 수 있으니. 2023. 6. 13.
[spring] 예외처리 @ControllerAdvice, @ExceptionHandler를 이용한 예외처리 분리, 통합하기(Spring에서 예외 관리하는 방법, 실무에서 활용하는 방법) 예외 처리 과정 프로그래밍에서 예외 처리는 아주 중요하면서도 아주 어렵다. 과하다할 만큼 상세하고 다양하게 예외를 잡아 처리해준다면, 클라이언트도 그렇고 서버도 그렇고 더 안정적인 프로그램이 될 수 있게 도와준다. 예외 처리를 하는 경우와 방법은 다양하다. 메서드 내에서 예외 상황을 예측해서 처리하는 try-catch문을 이용하는 방법 요구사항에 의한 예외 처리 (ex. validation > 특정 값이 0~255범위가 아니면 유효하지 않은 값으로 판단하고 예외 처리) 스프링 시큐리티에서 인터셉터로 잡아서 UnauthorizedException 같은 예외 처리 기타 여러 예외 처리들을 적용하다보면 코드가 엄청나게 복잡해진다. if문으로 잡든 try-catch로 잡든 상위 메서드로 예외처리를 위임하든 코드.. 2023. 6. 8.
IntelliJ 플러그인 추천 인텔리제이로 개발하다보니 플러그인일 추가로 설치해야 하는 경우가 있었다. 피씨 여러군데에 옮겨다니며 개발하다보니 플러그인 설치 목록을 정리해보려한다. - IntelliJ 에서 플러그인이란? 개발하는데 도움을 받을 수 있는 도구를 말하며, 자동완성, 디자인, 외부 서비스 연동(git 등), 테스트에 도움을 받을 수 있는 툴 들이며, 업데이트도 주기적으로 제공하므로 업데이트하며 사용 가능하다. 플러그인을 통해 개발 효율을 올릴 수 있다. 추천하는 플러그인 1. Atom Material Icons 메뉴의 아이콘을 보기 좋게 바꿔준다. 미적 효과와 가독성이 올라간다. 2. CodeGlance 우측상단에 미니맵 추가, 스크롤 대신 빠르게 이동 가능함 ctrl+shift+g 로 on/off 가능. 3. AiXcod.. 2022. 9. 12.
MyBatis, mybatis 는 무엇인가? MyBatis는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. MyBatis는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. MyBatis는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO(Plain Old Java Object) 를 설정해서 매핑하기 위해 XML과 어노테이션을 사용할 수 있다. 나는 data저장 및 사용을 위한 Persistence 계층을 이용하는 도구로서 사용한다. 같이 이용하는 도구로써 HikariCP라는 것도 있으나 이번 게시에는 mybatis에 대해서만 적어보려한다. ※ 테스트 하기 위해선 DB를 준비할 필요가 있다. 테스트용 데이터베이스를 준비하고 연결까지 완료해야하며,.. 2021. 1. 24.