반응형

분류 전체보기 226

[Java-DesignPattern] Factory Pattern이란? 팩토리패턴 설명

팩토리패턴이란? 상위 클래스(부모)와 하위 클래스(자식)가 있을 때, 별도의 팩토리 클래스를 사용하여 하위 클래스의 인스턴스를 생성하는 패턴. 팩토리패턴이 이거구나 하기 전까지는 무의식 중으로 사용했을 수 있다고 본다. 코드를 보고 확인하자. Animal.java -> 부모클래스 public class Animal { public Animal(){ } //Animal의 메소드 } 자식 1 Dog public class FactoryDog extends Animal{ public FactoryDog(){ // 생성자 } public FactoryDog(String data){ return; } //Dog의 메소드 ... public String toString(){ return "Dog"; } 자식 2 C..

[JPA] 상속관계 매핑 전략이란? @Inheritance, @DiscriminatorColumn이란?

상속관계 매핑이란? 객체는 상속관계가 존재하지만 관계형 데이터베이스에는 존재하지 않는 개념이다. 객체의 상속관계를 관계형 데이터베이스의 슈퍼타입/서브타입 관계를 매핑하는것..! 그렇다면 논리 모델을 물리 모델로 어떻게 구현할 수 있을까? JPA 입장에서는 간단하게 매핑전략만 선택하면 DB입장에서 봤을때 3가지 방식으로 구현할 수 있다. @Inheritance(strategy=InheritanceType.전략) -> default 전략은 SINGLE_TABLE(단일테이블 전략)이다. -> 전략종류 : 1). SINGLE_TABLE : 단일테이블에 한번에 모든 정보를 다 담는 전략. 위의 사진에 따르면 ALBUM / MOVIE / BOOK 별도의 테이블에 데이터를 저장한다. 2). JOINED : 각각의 테..

JPA

[JPA] @Embedded @Embeddable 이란? 예제

JPA에서는 Entity 내부의 값을 더 응집시켜 객체로 데이터를 표현한다. JPA를 사용하면서 자주 보게되는 @Embedded와 @Embeddable 어노테이션을 한번 살펴보자. 회원가입을 생각하여 간단한 코드로 확인해보도록 하자. @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="user_id") private Long id; private String name; private String phoneNum; private String zipCode; private String address; private String addressDetail; ..

JPA

[JPA] No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer 오류

오류코드 : [JPA]No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer 문제점 : ManyToOne의 Fetch전략을 Lazy로 사용했을때 발생하는 문제점. Lazy옵션은 필요가 없을때는 물려있는 친구를 조회해 오지않기 때문에, 비어있는 객체를 Serialize 하려고하니 발생하는 문제인것 같다. 해결방법 : 세가지 정도 있다고 하는데, 차근차근 알아봐야겠다. (수정예정) 1). application파일에 spring.jackson.serialization.fail-on-empty-beans-false 를 ..

JPA

[Redis] Centos 7 Redis 설치 및 설정 잡기

이번에는 Redis를 설치 하고, 설정하는것을 정리해 두려고 한다. 1). Redis 설치 Yum을 사용해서 EPEL을 설치하고 이를 사용하여 Redis를 설치한다. yum install epel-release yum update 2). redis 설치 yum install redis 3). redis 실행 및 활성화 systemctl start redis systemctl enable redis 4). 방화벽 규칙 추가(iptables) 방화벽 규칙 추가시 REJECT 부분 보다 위에 추가해야된다. 기본 redis는 6379 port를 사용하니, 우선 6379port를 개방해준다. vi /etc/sysconfig/iptables #내용추가(6479 port 개방) -A RH-Firewall-1-INPU..

[Linux] systemd에 서비스 등록후 사용하기

systemcd에 자주 사용하는 service를 등록시켜놓고 관리할수있다. 편리하게 사용할 수 있으니, 자주 쓰는것들을 등록시켜놓으면 좋을것같다. 예를들어 tomcat start / stop 같은.... 등록하는 방법은 /etc/systemd/system/service name.service 에 등록하면 된다. 기본 틀을 적어놓자. [Unit] Description=tomcat 8 After=network.target syslog.target [Service] Type=forking User=tomcat4 Group=tomcat4 ExecStart=/usr/local/server/apache-tomcat-8.5.43/bin/startup.sh start ExecStop=/usr/local/server/a..

[Linux] CentOS 7 Tomcat 설정 및 실행 만들기

Centos 7 기준으로 Tomcat을 설치하고, 설정을 잡아본 내용을 정리해 놓으려고 한다. 조금 자세하게 설명해놓고 싶지만 차후 추가 수정할 예정이다. 우선 간단하게 어떻게 설치하고, 설정했는지만 파악해보도록 하자.! 1). Tomcat을 설치할 디렉토리를 생성한다. 본인의 경로는 /usr/local/server 로 잡아두었고, 다른 tomcat들도 해당 디렉토리에 위치해있다. mkdir /usr/local/server 2). Tomcat 사용자 계정 생성 및 확인 / Tomcat 사용자 그룹 생성 및 확인 Tomcat을 여러개 사용할때 편의상 구분하기 편하도록 계정을 별도로 만들어서 사용했다. useradd -s /bin/false tomcat4 grep tomcat4 /etc/passwd grou..

[Linux] CentOS 7 Nginx Tomcat Reverse Proxy 설정방법

이번에는 nginx의 Reverse Proxy 설정 방법에대해서 작성해 놓으려고한다. ReverseProxy란? 쉽게 보면 Tomcat 앞에 존재하는 Nginx 또는 Apache와 같은 웹서버가 요청을 대신받아서 비지니스 로직이 필요한 부분은 톰캣에게 위임하고 정적리소스 지원같은 경우는 스스로 처리 하는 방법이다. 사용 -> 1). SSL 터널링 2). 웹컨테이너의 이중화 3). 정적 리소스 공유 4). 서브 도메인 사용 등등 본인은 IDC에 등록해놓은 서브 도메인을 사용한 리버스 프록시를 설정하였다. 처음 IDC에 서브도메인 test2.testBabree.co.kr 을 등록한뒤 시작! 기존에 test1.testBabree.co.kr 을 사용하고 있다는 상황으로 보도록 하자 1. 첫번째 nginx sit..

[Linux] CentOS 7 Nginx 502 Bad Gateway란?

Nginx reverse proxy 설정 중 Tomcat 설정을 잡지않고 그냥 띄웠을때 발생하였다. MDN에 따르면 게이트웨이 혹은 프록시로서 동작하는 서버가 더 뒷단의 upstream 서버로부터 유효하지 않은 응답을 받은 경우 이러한 에러가 나올 수 있다고한다. 추가적으로 연동된 서버(Tomcat, apache 등)이 죽거나, 설정 오류로 발생 할수 있다. 본인은 당연히 tomcat을 안띄워놨기에...ㅎㅎ 일부는 캐시를 삭제하거나 브라우저를 전부 종료하고 다시 키면 된다고한다. 하지만 본인은 그런 상황이 아니었으니,,, 패스! 이런게 있구나 하고 우선 급한 일 마무리 한뒤 다시 제대로 보자^^;

[SpringBoot] Spring boot에서 간단한 Redis 설정 및 사용 예제

필자는 SpringBoot를 독학하면서, 알고있던 지식들로 간간히 검색하며 시간날때마다 사이드 프로젝트를 만들고있다. Spring boot와 Spring data Jpa를 알고싶어서 만들기 시작했는데, 기존에 사용했던 SpringFramework와는 설정 부분이 달라 애를 먹는 점이 종종있다. 오늘은 Redis 설정을 한뒤, Interceptor에서 Redis를 사용해 보려고한다. 간단하게 캐시설정은 잡지 않고 Redis를 사용할 수 있을정도만 세팅해보았다. 다음번에 Redis 설정부분을 제대로 작성하겠다. 1). build.gradle Redis를 사용하기 위해 Dependency를 등록해준다. implementation 'org.springframework.boot:spring-boot-starter..

반응형