728x90 반응형 Spring136 동시성 문제 해결 - Synchronized, Pessimistic Lock, Optimistic Lock, Redis https://www.inflearn.com/course/%EB%8F%99%EC%8B%9C%EC%84%B1%EC%9D%B4%EC%8A%88-%EC%9E%AC%EA%B3%A0%EC%8B%9C%EC%8A%A4%ED%85%9C/dashboard 재고시스템으로 알아보는 동시성이슈 해결방법 | 최상용 - 인프런 최상용 | 동시성 이슈란 무엇인지 알아보고 처리하는 방법들을 학습합니다., 동시성 이슈 처리도 자신있게! 간단한 재고 시스템으로 차근차근 배워보세요. 백엔드 개발자라면 꼭 알아야 할 동 www.inflearn.com 위 강의를 학습하며 작성. 작업환경 세팅 brew install docker brew link docker docker version docker pull mysql docker run -d .. 2024. 4. 8. 현재 열려있는 포트 조회 및 닫기 (macOs) iterms (터미널, 쉘) 을 이용해서 현재 사용하고 있는 PORT 를 조회할 수 있다. lsof -PiTCP -sTCP:LISTEN sudo lsof -PiTCP -sTCP:LISTEN 종료하는 방법은 PID 의 번호와 kill 명령어를 사용한다. kill -9 (PID번호) sudo kill -9 (PID번호) 2024. 3. 24. Mac 자바 설치 경로 확인하기 Iterm 를 이용해서 자바 경로를 조회한다. /usr/libexec/java_home -V 해당 경로로 이동 cd /Users/joyunjong/Library/Java/JavaVirtualMachines 2024. 3. 13. @Transactional 안에 @Transactional 테스트 @Transactional 안에 @Transactional 이 있는 경우 테스트를 해보았습니다. TransactionSynchronizationManager.*isActualTransactionActive*() 메서드를 이용해서 트랜잭션이 적용되는지 확인 할 수 있습니다. 1. ### 외부메서드(트랜잭션) + 이너메서드 @Slf4j @Service public class TransactionService { @Transactional public void outerMethod() { log.info(" ****** outerMethod start ******"); log.info(" ****** outerMethod transaction Active : {}" , TransactionSynchroniza.. 2024. 3. 4. @Conditional 을 이용해 특정 조건일 때만 사용 @Conditional 특정 조건이 참인 경우에만 빈에 등록해야하는 상황에 사용할 수 있습니다. Condition 인터페이스를 상속받아 구현해 사용합니다. 반환타입은 boolean 값입니다. @FunctionalInterface public interface Condition { boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata); } @Slf4j public class MemoryCondition implements Condition { @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { // -Doption=.. 2024. 2. 22. 인프런- 김영한님 온라인 밋업 Live [ 30만 수강생 기념 ] 느낀점 10만 , 20만 을 넘어 30만 수강생에게 지식을 나눔하고 계신 영한님의 온라인 밋업 동영상이 인프런에 게시되었습니다. https://www.inflearn.com/course/30%EB%A7%8C-%EA%B9%80%EC%98%81%ED%95%9C-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EC%84%B8%EC%85%98 [지금 무료] [30만 수강생 기념] 1/31 김영한님 온라인 밋업 Live 강의 - 인프런 1월 31일 저녁 7시에 진행되었던 밋업 영상입니다., [사진][사진]여러분들의 인생멘토가 될,김영한님의 첫 라이브 세션!😟 내가 개발자로 평생 일할 수 있을까?🤔 현 시점 개발자가 갖춰야 할 가 www.inflearn.com 해당 영상을 보고 현재 나의 상황과 느낀점에 대해 간단히 정.. 2024. 2. 9. @ConfigurationProperties / @ConfigurationPropertiesBean url: naver: www.naver.com depth: google: www.google.com yml 에 설정한 값들을 편리하게 사용할 수 있는 어노테이션입니다. 기존에 프로젝트에서 사용했던 방법은 2가지를 사용했습니다. 1. Enviroment 를 사용 2. 각각의 설정파일을 불러 객체로 만들어 사용 @ConfigurationProperties / @ConfigurationPropertiesBean 를 사용하게 되면 객체지향적으로 설정파일의 값을 사용할 수 있습니다. application.yml 을 간단히 설정했습니다. naver 처럼 첫 줄에 값을 설정할 수도 있지만, google 처럼 두번째 depth 로 사용하는 경우도 많습니다. url: naver: www.naver.com depth: g.. 2023. 8. 23. @Transactional 에 대해 @Transaction 스프링 프레임워크를 사용하면 보통 서비스 레이어(비즈니스로직) 에 @Transactional 어노테이션을 선언해 트랜잭션을 시작한다. 해당 어노테이션에 있으면, 메서드를 호출하기 직전에 스프링의 AOP 가 먼저 동작한다. 메서드가 시작하기 전 트랜잭션을 시작한다. 메서드가 정상적으로 종료되면 트랜잭션을 커밋하면서 종료한다. 트랜잭션을 커밋할 때, 플러시 하면서 DB에 저장하고 커밋한다. 만약, 예외가 발생하면 트랜잭션을 롤백하고 종료한다 ( 커밋은 발생 X ) + 기본적으로 Unchecked Exception, Error 만을 롤백한다. 트랜잭션이란? 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행되어야 하는 연산 Begin , commit 을 자동으로 수행 예외 발생 시, .. 2023. 8. 15. 동적 프록시란 ? 먼저, Spring Boot 2.0 이상부터 CGLIB 가 기본으로 적용되어 사용되고 있다. Spring AOP 에는 JDK proxy 를 기본으로 사용한다. 단, 인터페이스가 없는 경우에는 CGLIB 을 사용한다. CGLIB 을 디폴트로 사용하고 있는 이유는 인터페이스 기반의 프록시 ( JDK proxy ) 는 때때로, ClassCast Exceptions 를 추적하기 어렵다고 한다. ( 단순히 생각해도, 인터페이스보다 구현하고 있는 클래스를 기반으로 프록시를 만드는 것이 더 정확할 것. ) Spring AOP 는 기본적으로 프록시 방식을 사용한다. 프록시는 객체를 직접적으로 참조하는게 아닌, 해당 객체를 대신하는 객체를 통해 객체에 접근하는 방식. 프록시 객체없이 타겟에 접근하게 되면, 직접 호출하는.. 2023. 8. 11. 이전 1 2 3 4 5 ··· 16 다음 728x90 반응형