본문 바로가기

Spring/ETC21

현재 열려있는 포트 조회 및 닫기 (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.
인프런- 김영한님 온라인 밋업 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.
@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.
Java Bean / POJO / Spring Bean 간단 설명 Java Bean 과 POJO , Spring Bean 의 차이점에 대해 간단히 알아보겠습니다. 1. Java Bean 은 옛날 EJB 로 개발하는 시절에 중요했던 개념입니다. 현재는 EJB 로 개발하는 일은 많이 없다고 합니다. Java Bean 은 3가지 제약사항이 있습니다. - default 생성자는 public 이어야 하며, 파라미터가 없어야 합니다. - 클래스의 속성에 접근할 수 있는 getter / setter 가 있어야 합니다. - 해당 클래스는 Serializable 을 implement 해야 합니다. 코드로 알아보면 아래와 같은 형태를 나타냅니다. import java.io.Serializable; public class JavaBean implements Serializable { pr.. 2023. 7. 29.
[Java] Double Type 은 Integer 타입과의 연산에서 소수점을 버린다. Double Type 은 Integer 타입과 연산할 때 소수점을 버리게 되어, 연산 시 다시한번 더 해당 내용을 상기시키며 로직을 작성해야 합니다. 돈과 관련된 내용이라면 더욱더 타입이 달랐을 때를 생각해야 합니다. querydsl 에서는 mutiply() 라는 메서드를 제공하고 있습니다. 정말 단순히 생각하면 곱하기를 해주는 메서드이기 때문에, 그냥 사용하는 경우가 있습니다. 저 같은 경우에는, 환불금액에 관련된 querydsl 로직을 작성하던 중 해당 금액에 대한 20% 의 값을 구해 그 값을 사용해야 했었는데 단순히 mutiply(0.2) 를 해 테스트를 해보았더니 모든 결과값이 0 으로 발생했습니다. 아래는 정상적으로 통과하는 테스트 코드입니다. 모든 Q 타입의 객체는 Integer 타입입니다... 2023. 7. 22.
var 타입은 사용하는 것이 좋을까 ? - in Java 먼저 var 타입은 Java 10 에서 도입되었습니다. 변수를 선언할 때 타입을 생략할 수 있으며, 컴파일러가 타입을 추론합니다. var now = LocalDateTime.now(); . 프로젝트 중 반환타입이 길 경우, 코드 컨벤션으로 인해서 칸이 나눠지거나 파라미터가 마음에 들지 않게 내려가는 등, 이쁘지 않은? 것처럼 자동완성 되는 경우가 많았습니다. 지금까지 단순히 타입이 길어서 var 로 바꿔 사용하는 경우가 있었는데, 이후 코드를 다시 보니 어떤 반환타입인지 바로 보이지 않아, 가독성이 떨어진다는 생각을 하게 되었습니다. var 타입에 대해서, 개발자들의 의견이 나뉘는 것 같습니다. stackoverflow 에서도 이것에 대해 각자 다른 주장을 하는 것을 볼 수 있었습니다. https://s.. 2023. 7. 16.
Linux Json File UTF-8 convert EUC-KR 방법 Linux 에서 파일의 locale 을 EUC-KR 로 변환 하는 방법을 알아보겠습니다. 먼저, UTF-8 과 EUC-KR 에 대해서는 아래 블로그를 참고하면 좋을 거 같습니다. 간단히 말하면 EUC-KR 은 KR 이 붙은 것처럼 각 나라들마다 문자열의 표라고 생각하면 됩니다. UTF-8 은 전세계의 모든 문자를 유니코드에 하나로 합친 것을 의미합니다. https://coding-factory.tistory.com/810 [ETC.] UTF-8과 EUC-KR의 차이점에 대하여 보통 한글이 깨졌다고 하죠. 개발을 하다 보면 한글이 제대로 표현된 프로젝트를 import 시켰을 때 아래 그림처럼 한글이 깨지는 경험이 있으실 겁니다. 대체 이런 상황은 왜 발생하는 것일까요? coding-factory.tisto.. 2023. 7. 15.