분류 전체보기 (84) 썸네일형 리스트형 Entity에 테이블 맵핑 https://wikidocs.net/161165 2-04 엔티티로 테이블 매핑하기 * `[완성 소스]` : [https://github.com/pahkey/sbb3/tree/v2.04](https://github.com/pahkey/sbb3/tree/v2.04… wikidocs.net h2 연결 이슈로 mysql 사용 @Entity 스프링 부트가 해당 클래스를 엔티티로 인식 @Id - id 속성을 기본키로 지정 @GenerateValue - 데이터를 저장할 때 해당 속성 값이 자동으로 1 씩 증가 Strategy=GenerationType은 해당 속성만 별도로 번호가 차례대로 증가하는 옵션 (생략되면 모든 @GenerateValue이 지정된 모든 속성에 번호를 생성) @Column 열의 세부 설정을 위.. Background와 nohup aws에서 ec2 접속을 종료하면 서버가 같이 종료 되는 경우가 있다! 이는 서버를 background가 아닌 foreground에서 서버를 동작 시켰기 때문이다 이 문제를 해결하기위해 nohup 명령어를 사용해야한다. (spring, java 사용) nohup 사용법 nohup java -jar jar 파일 주소 --spring.profiles.active=profile의 이름 & nohup.out이 생성된 것을 확인할 수 있다 이제 원하는 파일을 background에서 동작하게 됐으니 ec2 접속을 종료해도 서버가 실행된다. 주의점!! 서버를 종료하고 싶을때 그저 nohup.out 파일을 삭제하면 된다고 생각 할 수 있는데 그렇지 않다. 아래의 이미지를 보면 1. rm 명령어를 썼지만 2. ps au.. 터미널로 git push 터미널 창 실행git init - 깃을 시작한다는 뜻git remote add origin 깃허브 repository 주소gitignore 파일 생성git add .git commit -m "메세지 작성"git push( 최초 1회 안에서 git push --set-upstream origin main) active profile 설정(인텔리제이 무료 버전 기준) 스프링 사용할 때 실행되는 설정을 다르게 하고 싶을 때 profile을 설정하는 방법 1. application.yml 우선 구분선(---)을 이용해서 각 설정에 따른 application.yml 파일 수정 (구분선을 기준으로 위는 local , 아래는 dev로 설정) 2. active profile 빨간색 동그라미 클릭 -> edit configurations 클릭 Modify options(빨간색 동그라미) 클릭 -> Java- add VMoption 클릭 -> 새로 생긴 vm option 창(빨간색 체크)에 -Dspring.profiles.active= 원하는 profile 이름 입력 3. 실행 결과 확인 Dependency Injection 생성자 주입 수정자 주입(setter 주입) 필드 주입 일반 메서드 주입 컴포넌트 스캔 Filter 필터 사용법 @MyIncludeComponent public class BeanA { } @MyExcludeComponent public class BeanB { } @Configuration @ComponentScan( includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION,classes = MyIncludeComponent.class), excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = MyExcludeComponent.class) ) includeFilters: 컴포넌트 스캔에서 추가할 대상을 지정 excludeFilters: 컴포넌트 스캔에서.. Singleton 디자인패턴의 생성 패턴 중 하나, 오직 1 개의 객체 인스턴스를 생성하는 패턴 public class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() {} public static Singleton getInstance() { return INSTANCE; } } *public, private 잘 구분 getInstance()를 사용하여 객체를 불러올 수 있음 스프링 빈 조회하기 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(빈등록클래스명.class); 스프링 컨테이너에서 스프링 빈을 찾는 가장 기본적인 조회 방법 1. ac. getBean(빈 이름, 타입) 2. ac.getBean(타입) 만약 조회 대상 스프링 빈이 없으면 발생하는 예외 - NoSuchBeanDefinitionException 조회되는 타입이 둘 이상일 때 발생하는 예외 - NoUniqueBeanDefinitionException -> 이름으로 조회, 특정타입을 모두 조회 스프링 빈의 상속 관계 부모 타입으로 조회하면 자식도 함께 조회됨 -> Object로 하면 모든 스프링 빈 조회 객체 지향 5가지 원칙(SOLID) 1. Single Responsibility Principle(=단일 책임 원칙) 하나의 클래스는 하나의 책임만 가진다 클래스 수정을 했을 때 파급 효과가 적으면 SRP가 잘 지켜진 것 2. Open Closed Principle(=개방폐쇄 원칙) 확장은 열고 수정에 닫는다 객체지향의 다형성을 활용해서 인터페이스를 새로운 클래스로 새로운 기능 구현 사용영역과 구성영역을 나누는 것 3. Liskov Substitution Principle(= 리스코프 취환 법칙) 컴파일의 성공여부를 떠나 인터페이스의 규약은 하위클래스들을 지키는 것 4. Interface Segregation Principle(=인터페이스 분리 원칙) 범용적인 인터페이스 보다 특정 역할을 나누어 인터페이스를 만드는 것이 좋다. 5. Dep.. OCP(Open-Closed Principle) 개방 패쇄 원칙(OCP) 소프트웨어 개체는 확장에 대해 열려 있어야 하고 수정에 대해서는 닫혀 있어야 한다 다형성과 확장을 가능케 하는 객체지향의 장점을 극대화하는 설계 원칙 확장에 열려있다 > 새로운 변경 사항이 발생 했을 때 유연하게 코드를 추가함 변경에 닫혀있다 > 객체()의 직접적인 수정을 제한 잘알려진 예시 JDBC - DB를 바꾸고 싶을때 connection 부분 교체 DIP 설계 기반이 됨 도움이 된 글 https://inpa.tistory.com/entry/OOP-%F0%9F%92%A0-%EC%95%84%EC%A3%BC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EB%8A%94-OCP-%EA%B0%9C%EB%B0%A9-%ED%8F%90%EC%87%8.. 이전 1 ··· 3 4 5 6 7 8 9 다음