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

IT기술/spring44

[spring] logging 방법 slf4j 이 무엇인가? 정리해보자. 자바로 개발하다보면 log4j를 사용해 개발하는 경우가 대부분이었는데, 스프링 부트를 접하면서 slf4j로 갈아타는 추세인 것 같다. Simple Logging Facade for Java (SLF4J) 를 줄여서 SLF4J 라고 부르는데, facade 패턴의 로깅방식을 지원하는 방법이라고 보면 된다. facade 패턴은 소프트웨어 공학 디자인 패턴 중 하나이며, client 는 facade(퍼사드, 정면) 만 바라보고 원하는 기능을 요청하면 그 뒤의 다양한 경로들의 접근은 신경쓰지 않아도 되는 방식이다. slf4j를 보면 logback, log4j, log4j2를 사용하는데 있어 slf4j만 호출해서 명령하면 logback이던 log4j이던 동작시킬 수 있다. 별도의 logback, log4j, log.. 2023. 5. 11.
[Rest] Swagger 란 Rest API 도구 Swagger란? Swagger는 OAS(Open Api Specification)를 위한 오픈소스 프레임워크입니다. 즉, API의 문서를 자동으로 정리해주는 것 입니다. 해당 Swagger를 협업하는 개발자에게 전달하면 Path, Request, Response, 제약 조건 등을 한 번에 알 수 있습니다. API 문서 자동화 뿐만 아니라, Swagger를 통해 파라미터를 넣어보고 테스트를 진행할 수 있습니다. 프론트 개발자는 API에서 요구하는 Request를 작성하고, Swagger에서 직접 테스트 후 코드에 반영하곤 합니다. API 문서를 작성하는 시간을 절약할 수 있고, API 정보를 실시간으로 유지할 수 있다는 장점이 존재합니다. 특히, 개인적으로 휴먼에러를 최소화할 수 있다는 점이 상당한 매리.. 2023. 4. 3.
Intellij Community 버전으로 spring 개발하기 일반적으로 이클립스나 STS로 스프링 프로젝트를 만들어 개발하면 되지만, IntelliJ 는 유료 툴이다 보니 아무래도 제한이 있을 수 밖에 없다. 유료 버전으로 만들면 문제 없으나, 무료 버전(Community)에선 스프링 프로젝트를 만들 수 없다. 때문에 스프링 사이트에서 제공하는 https://start.spring.io/ 해당 url을 통해서 프로젝트를 생성한 뒤에 여는 방식으로 프로젝트를 만들어야 한다. 불편할수도 있으나, IntelliJ 를 쓰려면 어쩔 수 없는 부분같다. 2023. 3. 24.
apache Camel 정리 아파치 프로그램 중에서 Camel 이라는게 있다. EIP(Enterprise Integration Patterns) 기반의 오픈소스 통합 연계 프레임워크이며 스프링 프레임워크와 연계해서 동작가능하다. CAMEL(Concise Application Message Exchange Language) 약어와 같이 Camel은 다른 시스템간 메시지 교환(Exchange), 전송을 위해 사용한다. 즉, 시스템 통합(System Integrations)을 위한 자바 프레임워크이다. HTTP를 사용하여 HTTP, ActiveMQ, JMS, JBI, SCA, MINA 또는 CXF와 같은 모든 유형의 전송 또는 메시징 모델 처리가능. Java 응용 프로그램에 쉽게 포함될 수 있도록 최소한의 종속성을 가진 작은 라이브러리로.. 2022. 12. 16.
IntelliJ auto Import IntelliJ에서 Import는 ctrl + alt + o 를 단축키로 사용한다는 이야기가 있던데, 이는 java안의 불필요한 import 문을 정리해주는 기능이라고 한다. 프로젝트나 모듈을 Import하는 기능이 아니다. 그렇다보니 정리만 하는 기능이지, 누르더라도 아무런 창이 뜨지 않는다. 제대로 진행되고 있는지 알 수 없다. 찾아보니 설정에서 별도로 설정을 해줘야 하는 것 같다. Settings -> Editor -> General -> Auto Import 에서 아래 두개 항목을 체크해주면 된다. 2022. 9. 22.
IntelliJ Import와 Export IntelliJ를 처음 쓰다보면 불편한 부분이 있다. 프로젝트를 가져오거나 내보내는 Import와 Export가 Eclipse보다 어렵게 되어있다. 그렇다보니 별도로 정리해서 올리게 되었다. 먼저 Eclipse와 IntelliJ에서의 프로젝트 개념에 대한 다른점을 정리할 필요가 있다. 구분 이클립스 인텔리제이 작업공간 workspace project 프로젝트 project module 설정파일 .Project .idea 이 개념을 모르면 이클립스만 쓰다가 IntelliJ를 쓰면 혼동이 올 수 있다. 아 짜증난다. 정리하자면 Intellij 에서 Project를 Import/Export할지, Module을 Import/Export할지 구분해야 한다는 것이다. 1. Import IntelliJ에서 Impor.. 2022. 9. 22.
IntelliJ 인코딩 설정방법 IntelliJ로 개발하면서 Eclipse처럼 별도로 인코딩을 지정해줘야 한다. 그래야 파일들이 지정된 인코딩으로 저장되며, 다른 곳에서 공유시 문제가 생기지 않을 것으로 보인다. 1. 파일에서 직접 설정 IntelliJ 설치 폴더에 idea64.exe.vmoptions 라는 옵션파일을 열어 제일 아래 줄에 -Dfile.encoding=UTF-8 를 추가해준다. 이렇게하면 별도로 설정을 하지 않아도 인코딩이 자동으로 UTF-8로 등록된다. 2. Intellij Editor File Encoding 설정 setting에서 인코딩 설정하는 방법이다. Global Encoding 과 Project Encoding 에서 원하는것으로 설정해주면 된다. 나는 1번작업을 했기에 사진처럼 자동으로 맞춰져 있다. 2022. 9. 22.
IntelliJ 플러그인 추천 https://teck10.tistory.com/497 [IntelliJ] 플러그인 추천 2인텔리제이로 개발하다보니 플러그인을 설치해서 사용하는 편입니다.IntelliJ 에서 플러그인이란?개발하는데 도움을 받을 수 있는 도구를 말하며, 자동완성, 디자인, 외부 서비스 연동(git 등), 테teck10.tistory.com2탄 보시기 바랍니다. 인텔리제이로 개발하다보니 플러그인을 추가로 설치해야 하는 경우가 있었다.피씨 여러군데에 옮겨다니며 개발하다보니 플러그인 설치 목록을 정리해보려한다.- IntelliJ 에서 플러그인이란?개발하는데 도움을 받을 수 있는 도구를 말하며, 자동완성, 디자인, 외부 서비스 연동(git 등), 테스트에도움을 받을 수 있는 툴 들이며, 업데이트도 주기적으로 제공하므로 업데이트하.. 2022. 9. 12.
[Spring] 간단하게 HTTP POST 요청하기 POST 요청이란? 서버에 요청하는 방식 클라이언트가 서버에 요청을 할 때 제공해야하는 자원이 있을 때 Get방식은 요청하는 자원을 URL에 뒤에 보내는 반면 POST방식은 URL에 붙이지 않고 따로 데이터(Body)를 만들어 보낸다. Spring Framework에서 POST 요청 하기 1. body 만들기 Body는 보통 key, value의 쌍으로 이루어지기 때문에 자바에서 제공해주는 MultiValueMap 타입을 사용해야한다. MultiValueMap params = new LinkedMultiValueMap(); params.add('') MultiValueMap 타입으로 만들어준 변수에 add()를 사용해 보낼 데이터를 추가해준다. 2. Header 만들기 HTTP POST를 요청할때 보내는.. 2021. 9. 30.
[spring] Ajax Option 정리 및 Ajax 415 Unsupported Error 원인/해결 클라이언트에서 서버로 Ajax 를 이용해서 비동기 요청를 했을 때 발생한 오류다. post타입으로 요청했는데, 415오류가 나는 것이다. '415 Unsupported Media Type' 415 오류는 지원되지 않는 형식으로 클라이언트가 요청을 해서 서버가 요청에 대한 승인을 거부한 오류를 의미한다. 이럴경우 header 부분의 Content-Type, ContentEncoding 을 확인해보자. 나같은 경우는 json 형식으로 출력을 하는데 Content-Type 이 text/plain으로 되어있어 415 오류가 발생했다. Content-Type 을 application/json 으로 변경해주니 정상적으로 작동하더라. 2021. 9. 30.
[spring] 오류처리 expected at least 1 bean which qualifies as autowire candidate for this dependency 이 오류는 annotation이 제대로 기입되지 않았을 경우 발생하는 오류다. 해결 방법은 @Controller, @Service, @Repository와 같은 annotation을 올바른 위치에 작성하면 된다. 2021. 9. 30.
[spring] MyBatis insert, update NULL MyBatis/iBatis를 사용하다보면 insert/update시 null을 입력해야 할 때가 있다. 일반적으로 paramter를 넘겨서 insert/update를 실행할 때 입력값에 null 이 들어가 있으면 오류가 발생한다. Mybatis에선 파라메터의 값이 null일 경우 입력이 불가능하다. mapper에서 if를 사용해 필터링 할 수 있지만 소스가 길어진다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 INSERT INTO TB_test ( idx , memo ) VALUES ( #{idx} , #{memo} ) Colored by Color Scripter cs 대체 방법으로 파라메터에 jdbcType을 지정해주면 null이 들어가더라도 처리가 가능하다. 1 2 .. 2021. 9. 30.