본문 바로가기

Spring

(11)
[IntelliJ] java.lang.ClassNotFoundException이 발생한 경우 문제 기존에 계속 스프링 프로젝트를 실행했던 프로젝트였는데 어느순간부터 자바를 jdk를 찾지 못해 main application을 실행하지 못하는 생황이 발생 어플리케이션 실행 시 java.lang.ClassNotFoundException이 오류메시지가 발생했다. 해결방법 1. Edit Configurations을 클릭 2. jdk 제대로 import 되어있는지 확인하거나 다른 jdk를 선택해서 적용해본다.
[DB] MyBatis vs JPA 백엔드에서 데이터베이스를 사용하는 프레임워크로 가장 많이 쓰이는 기술이 'Mybatis'와 'JPA'입니다. Java 기반의 Spring 또는 SpringBoot에서 데이터베이스를 사용하려면 두 가지 기술 중 하나를 사용해야 하기 때문에 Java 백엔드 개발자는 'Mybatis'와 'JPA'를 반드시 알고 있어야 합니다. 데이터베이스 접속을 편하게 사용하기 위해 SQL Mapper 기술과, ORM(Object Relational Mapping) 기술을 제공합니다. SQL Mapper : '개발자가 작성한 SQL 실행 결과를 객체에 매핑'시켜주는 프레임워크 -> MyBatis ORM : 객체와 DB의 데이터를 '자동으로 매핑'시켜주는 프레임워크 -> JPA(Java Persistence Api) 두가지 기..
[SpringBoot] tomcat access log 출력 SpringBoot의 web module에 있는 내장 톰캣은 기본적으로 access log를 출력하지 않는다. 다양한 방법으로 access log 혹은 그와 유사한 로그를 남길 수 있지만 전통적인 설치형 tomcat에서 access log를 남기는 것과 동일한 log 출력 방법을 설정해본다. application.yml 설정 server: tomcat: accesslog: enabled: true directory: logs suffix: .log prefix: access_log file-date-format: .yyyy-MM-dd pattern: %{yyyy-MM-dd HH:mm:ss}t %s %r %{User-Agent}i %{Referer}i %a %b %D max-days: 14 basedir:..
[Spring] EC2에 Docker에 Redis SpringBoot 프로젝트 연동 티켓 예매 프로젝트에 진행하게 되면서 ec2에 redis 및 springboot 배포해야 할 일이 생겼다. 그 중 Spring과 Redis 연결이 잘되지 않아 하루넘게 시간이 걸려서 해결했다. 이 오류만 정말 수십번의 커밋과 푸시 배포과정을 진행했고 결론적으론 해결했다. 현재 redissonLockTicketFacade 클래스에 redis를 이용한 로직이 구현되어있고 마지막 오류메시지를 보면 계속 로컬로 연결되는 문제였다. Error creating bean with name 'redissonLockTicketFacade' defined in URL [jar:nested:/app.jar/!BOOT-INF/classes/!/com/example/yetiproject/facade/RedissonLockTic..
동시성제어(1) - Redis 레이스 컨디션(race condition) @Service public class ApplyService { ... public void apply(Long userId){ long count = couponRepository.count(); if(count > 100){ return; } couponRepository.save(new Coupon(userId)); } } TestCode @Test public void 여러명응모() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); //다른스레드에서 수행해주는 작업을 기다려주는 클래스 C..
HTTP상태코드 HTTP(HyperText Transfer Protocol) 웹 서버와 웹 클라이언트 사이에서 데이터를 주고받기 위해 사용하는 통신 방식으로 TCP/IP 프로토콜 위에서 동작 HTML이나 XML과 같은 하이퍼텍스트뿐 아니라 이미지, 음성, 동영상, Javascript, PDF와 각종 문서 파일 등 컴퓨터에서 다룰 수 있는 데이터라면 무엇이든 전송할 수 있다. 웹 브라우저 주소창에 https://www.naver.com을 입력하고 Enter를 누르면 웹 클라이언트와 웹 서버 사이에 HTTP 연결이 맺어지고 웹 클라이언트는 웹 서버에 HTTP 요청 메세지를 보낸다. 웹 서버는 요청에 따른 처리를 진행한 후에 그 결과를 웹 클라이언트에 HTTP 응답 메시지로 보낸다. 요청 메시지와 응답 메세지가 반복적으로 오..
[Spring] Redis Error creating bean with name 오류 Redis 관련 작업을 하고 있는데 전날 잘되었는데 오늘 갑자기 안됨.. org.springframework.beans.factory.unsatisfieddependencyexception: error creating bean 빈 등록 오류라는데 코드를 봐도 문제는 없었다. 생각해보니 redis 서버를 실행 안시킴.. 서버 실행하니 문제없이 spring 동작했다.
[Spring] Jmeter 설치 brew install jmeter 실행방법 jmeter 플러그인 설치 및 사용법 https://velog.io/@ehdrms2034/%EC%84%B1%EB%8A%A5-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%8F%84%EA%B5%AC-Apache-Jmeter-%EC%84%A4%EC%B9%98%EB%B6%80%ED%84%B0-%EA%B0%84%EB%8B%A8%ED%95%9C-%EC%82%AC%EC%9A%A9%EA%B9%8C%EC%A7%80 [성능 테스트 도구] Apache Jmeter 설치부터 간단한 사용까지 오늘은 성능테스트 도구로 많이 쓰이고 있는 Apache Jmeter의 간단한 사용법을 알려드리도록 하겠습니다.서버가 제공하는 서비스에 대한 성능을 측정하고 사용자에게 보여주는 ..