https://dev-emmababy.tistory.com/139 [IntelliJ] JAVA 버전 바꾸는 방법(JDK버전) 기존에 8버전을 쓰다가 11버전으로 변경해야 하는 프로젝트가 생겨서 기록해보는 "버전변경방법" 인텔리제이에서 6곳을 변경해주면 된다 (5곳 - 버전변경선택 / 1곳 - 원하는 JDK선택) Project Structure dev-emmababy.tistory.com https://covenant.tistory.com/279 스프링 부트 2에서 스프링 부트 3로 업그레이드 가이드 0. 시작하며 22년 11월 스프링 부트 3가 정식 릴리즈 되었습니다. 18년 3월 1일 스프링 부트 2가 나온 이후 3년 9개월의 시간이 지난 오랜만의 메이저 업데이트 입니다. 기존의 프로젝트를 스프링 부 ..
1. 설치된 Java version 확인 /usr/libexec/java_home -V v 뒤에 버전을 붙이면 특정 버전의 설치 경로를 확인할 수 있다. + JDK17을 홈브루에서 다운받았을 때 조회가 안되는 경우 아래 명령을 실행하면 된다. sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk 1-2. 현재 사용 중인 java version 확인 java -version 2. 사용할 JDK 설정하기 (환경변수 설정) vim ~/.zshrc 아래 내용 추가 export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) export PA..
Model DTO ProductDto class package dto; //상품 정보 public class ProductDto { private String name; private int price; public ProductDto(String name, int price) { this.name = name; this.price = price; } public String getName() { return name; } public int getPrice() { return price; } @Override public String toString() { return "상품명: " + name + ", 가격: " + price; } } PurchasedProduct class package dto; ..
git reset --hard [commit hash] 명령을 입력하면 HEAD가 해당 커밋으로 이동한다. 하지만 pull을하면 원래대로 돌아가고 push를 하자니 error가 발생한다. 이때 깨끗하게 지우려면 reset 후 새로운 커밋을 하나 만든 후 git push origin +main 명령을 사용하면 push가 되면서 이전 기록들이 전부 지워지는 것을 볼 수 있다. 만약 이때 ! [remote rejected] main -> main (protected branch hook declined) 이런 에러가 뜬다면 github repository -> setting -> branch에서 rule을 수정해주면 된다. 강제 푸쉬가 가능하게 설정해준 것이다.
싱글톤 패턴이란? 하나의 인스턴스만을 생성하여 사용하는 패턴이다. 최초로 생성된 객체 하나만을 가지고 호출하는 방식을 사용한다. 싱글톤 패턴의 장점 하나의 객체만 생성하여 불필요한 객체 생성을 막을 수 있다. 단점 하나의 객체를 공유하는 것이기 때문에 상태를 가진 객체를 공유하면 문제가 생길 수 있다. 또한 아무 객체나 자유롭게 접근하고 사용하는 것은 객체지향이랑 어울리지 않는다. 의존성이 높아지게 되므로 유지보수와 테스트에 어려움이 생긴다. 이처럼 싱글톤패턴은 장점보다 단점이 더 많은 패턴이기 때문에 주의해서 사용해야한다. 의존성 문제는 싱글톤 객체가 다른 객체와 바로 연결되어있어 의존성이 매우 높아 변경사항이 생기면 상당히 까다로워지기 때문에 중간에 의존서 주입자를 두어 A객체를 수정하더라도 B객체의..
템플릿 메소드 패턴이란? 전체적은 구조는 바꾸지 않으면서 반복되는 패턴을 정형화한 것이다. //추상 클래스 선생님 abstract class Teacher{ public void start_class() { inside(); attendance(); teach(); outside(); } // 공통 메서드 public void inside() { System.out.println("선생님이 강의실로 들어옵니다."); } public void attendance() { System.out.println("선생님이 출석을 부릅니다."); } public void outside() { System.out.println("선생님이 강의실을 나갑니다."); } // 추상 메서드 abstract void teach..