SERVER 13

[Spring boot] intellij error 프로젝트 셋팅 중 에러

개발하다보면 프로젝트 셋팅 또는 버전업을 할 때가 있는데, 실행도 전에 에러가 두둥!! 나오는 경우가 많죠? 이럴 때 마다 저는 에러를 열심히 읽고 구글 서치도 하면서 해결을 해나가는데요. 앞으로도 계속 볼 일이 있을 것 같아서 에러 메세지와 해결 방법을 공유하려고 합니다. ( 저 뿐만 아니라 다른 분들도 도움이 되겠죠? ㅎㅎ) 그럼 바로 시작해볼게요~~ 🤕 에러 메세지 java: static import only from classes and interfaces intellij java package org.mockito does not exist 등등.. 😉 해결 방법 .idea 파일 삭제 후 project restart 하기 🤕 에러 메세지 Execution failed for task ':comp..

SERVER/Spring Boot 2023.03.20

[Spring Boot] JMH - Benchmark Test 사용하여 성능 측정하기

🔵 JMH(Java MicroBenchmark Harness) 란? Open JDK에서 개발한 성능 측정 툴 특정 메소드의 성능을 측정하는 방식으로 사용 🔵 JMH 는 언제 사용할 수 있을까? 성능 튜닝을 할 때, 메소드의 성능을 측정하여 간단한 테스트를 진행할 수 있다. 여러가지 조건 및 부하를 주고 테스트를 할 수 있지만, JMH를 통해서는 메소드의 성능 튜닝을 로컬에서 간단하게 실행해보고 진행해볼 수 있다는 점이 좋다. 🔵 JMH 사용하여 메소드의 성능 측정하기 1) pom.xml 에 jmh-core 와 jmh-generator-annprocess 라이브러리를 추가 pom.xml org.openjdk.jmh jmh-core 1.26 org.openjdk.jmh jmh-generator-annproc..

SERVER/Spring Boot 2023.02.15

[SERVER] HTTP헤더 > content-type

👩‍💻 HTTP 헤더 HTTP 헤더는 클라이언트와 서버가 서로 요청/응답을 줄 때, API 요청값 또는 응답값 외의 부가적인 정보를 전송할 수 있도록 해주는 역할을 한다. header에는 보통 authorization(인증토큰), 쿠키, 클라이언트의 하드웨어 정보 등이 담겨있다. (이런 정보들을 통해 로그/오류 추적 등을 할 수 있다.) 🔎 CURL API 전문 (Request Header 확인 가능) -H 는 Request Header를 의미한다. 형태는 "이름" ":" "값" 으로 되어있다. curl 'https://cologger.shopping.naver.com//api/v1/collect/PLUS_DEAL/001051?adCntsSeqs=5899458&adCntsSeqs=5899725&adCnt..

SERVER 2023.01.26

[Spring Boot] REDIS PUB/SUB 구현

📍 기능 정의 message pub/sub 기능으로 누군가 메세지를 보내게 되면 특정 채널에 구독하고 있는 대상에게 메세지가 전송되는 구조 redis pub/sub 구조 https://gh402.tistory.com/69 [REDIS] REDIS PUB/SUB 구조 ⭐ REDIS PUB/SUB 기능 소개 Redis는 캐싱 역할 뿐만 아니라 message pub/sub 기능도 가지고 있다. 간단한 채팅을 구현하거나, 하나의 특정 메세지를 여러 사람이 받아야할 때 사용한다. ( 아래의 그림 참고 gh402.tistory.com 🍭 레디스 자바 클라이언트 lettuce Jedis Redisson spring boot 2.0 이상 부터 spring-boot-starter-data-redis 에 기본 클라이언트는..

SERVER/Spring Boot 2023.01.16

[Spring] DAO/DTO/VO/Entity 란?

1️⃣ DAO(Data Access Object) Data Access Object의 약자로 풀어 해석하면 Data에 직접 Access하는 객체를 의미한다. 다시 말하면, 실제 DB에 접근하여 CRUD하는 객체를 말한다. ex) repository package에 해당한다. JPA의 경우 JPARepository를 사용하는 경우가 DAO의 예시라고 생각하면 된다. public interface ChattingLogRepository extends MongoRepository { public ChattingLog findAllByRoomIdx(Long roomIdx); public List findByRoomIdx(Long roomIdx); } 2️⃣DTO(Data Transfer Object) 계층간 데..

SERVER/Spring Boot 2021.08.24

[Spring] 로그 남기기 - Log4j / SLF4J / Logger

Spring Boot 코드를 보면 @SLF4J 어노테이션을 본 적이 있을 것이다. Lombok에서 @SLF4J를 써본 사람이라면, 로그 관련된 어노테이션이라는 것을 알 수 있을 것이다. 그렇다면 SLF4J는 무엇이고 Log4j, Logger은 무엇일까? 👍🏻 로그의 중요성 프로그램에서 로그를 작성해두면, 어떤 동작을 하고 있는지 혹은 어느 부분에서 에러가 났는지 쉽게 파악할 수 있다. 특히나 오류가 발생했을 때, 어떤 함수 호출에서 문제가 있었는지/에러 메세지가 무엇인지, 어떤 값이 들어갔는지 등을 알 수 있기 때문이다. 단, System.out.prinln()을 사용하여 로그를 찍지 말자. 운영할 때는 전혀 사용되지 않고, 성능에 문제가 발생한다. 1️⃣ SLF4J 란? SLF4J는 Simple Log..

SERVER/Spring Boot 2021.08.24

[ErrorLog] 구글 SMTP 메일전송시 블루스크린 뜨는 현상

구글 SMTP 메일전송시 블루스크린 뜨는 현상 상황 Auth Server를 만들면서 이메일 인증을 위해 구글메일을 전송 구현했다. 내 컴퓨터의 보안프로그램을 끄지 않고 메일을 보냈을 때, 블루스크린이 뜬다. 보안프로그램을 끄고 메일을 전송할 때는 블루스크린이 뜨지 않는다. ( 메일전송이 잘 된다. ) 1. Application.properties # Email전송 spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username=/*아이디*/ spring.mail.password=/*앱비밀번호*/ spring.mail.properties.mail.debug=true spring.mail.properties.mail.smtp.auth=tru..

SERVER/Spring Boot 2021.01.06

[Spring] 스프링 프레임워크 이해하기

스프링 프레임워크란? 스프링 프레임워크는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다. 웹 애플리케이션을 만들기 위해 다양한 프레임워크가 존재하지만, 많이 알려지고 활용하고 있는 프레임워크이다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크로도 체택되었다. 스프링 프레임워크를 중심으로 스프링 부트, 스프링 시큐리티, 스프링 소셜, 스프링 클라우드 등 다양한 프로젝트들을 만들었다. 스프링 아키텍처 - MVC 패턴 MVC는 Model, View, Controller로 데이터와 화면을 분리시켜서 코드 재사용성을 높인다. 그림의 프론트 컨트롤러의 역할을 스프링 MVC에서 디스패처 서블릿이 대신한다. 일반적으로 사용하는 스프링 MVC 구조 1. 사용자(Client)..

SERVER/Spring Boot 2020.12.30

[Spring] Spring boot 프로젝트 살펴보기 (feat. 인증서버)

프로젝트의 주요 파일 및 구조 크게 src, test, build.gradle이 있다는 것을 확인할 수 있다. 프로젝트의 주요 파일 설명 src/main/java java 파일이 담겨져 있는 디렉토리 AuthServerApplication 애플리케이션이 동작할 수 있는 main함수가 담겨져있는 스프링의 메인 클래스 (애플리케이션 동작의 맨 처음이라고 생각하면 됨) application.properties 사용할 property를 정의하는 곳 ex) DB name, password, 속성 등 # 개인의 중요한 정보가 담겨있는 것은 따로 관리하여 gitignore에 추가해놓는 것이 좋음. build.gradle 프로젝트에서 사용하는 라이브러리들을 관리하고 빌드하는 곳 1. AuthServerApplicati..

SERVER/Spring Boot 2020.12.29

[SpringBoot] Spring boot JPA 사용하여 회원가입 구현하기

🖐 Spring boot JPA 사용하여 회원가입 구현하기 - 데이터 저장하기 ▶ 들어가기 Server 개발하면서 빼놓을 수 없는 것이 데이터를 저장하고 관리하는 것이다. Spring Boot 에서 DB를 연결하는 여러 가지 방법이 있는데, 그 중 JPA를 사용하여 개발해보려고 한다. DB 연결 방법 1) JDBC Connection Pool 2) MyBatis 와 Mapper 3) JPA ▶ JPA란? JPA는 Java Persistence API의 약자로 관계형 데이터베이스의 관리를 표현하는 자바 API 이다. 이는 ORM(Object-Relational Mapping)기술을 사용하여 만들어진 것인데, 직접 쿼리를 작성하지 않고 메소드만 사용하여 DB를 조작할 수 있다. CASE1) ORM : fin..

SERVER/Spring Boot 2020.12.19