반응형

JPA 어노테이션 사용 할 때 마다 정리

 

@Transient

 - 엔티티 내 @Column 이나 @Formula 등을 사용하지 않는 필드를 선언 할 때 사용

 

 

@Query

https://stackoverflow.com/questions/21456494/spring-jpa-query-with-like

 

Spring JPA @Query with LIKE

I'm trying to make a method in CrudRepository that will be able to give me list of users, whose usernames are LIKE the input parameter(not only begin with, but also contains it). I tried to use met...

stackoverflow.com

 

반응형
반응형
var formData = new FormData();

formData.append('key1', 'value1');

formData.append('key2', 'value2');



for (var pair of formData.entries()) {
console.log(pair[0]+ ', ' + pair[1]);
}

 

반응형
반응형

vue import 후 위와 같은 warn이 뜬다면

 

vue.js -> vue.min.js 로 변경 후 import 하면 된다.

 

변경 전

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>

변경  후

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.min.js"></script>

 

반응형
반응형

자바에서 모바일인지 아닌지 체크하는 로직 예제

 

String userAgentHeader = getRequest().getHeader("user-agent");
	if(userAgentHeader != null){
		userAgentHeader = userAgentHeader.toLowerCase();
	}
	if(userAgentHeader.matches(".*(android.+mobile|iphone|ipad|ipod|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino).*")){
		getResponse().sendRedirect(Configuration.getInstance().getString("tradekorea_mobile_host"));
		return;
	}

 

 

반응형

'IT > JAVA' 카테고리의 다른 글

[JPA] Composite-id class must implement Serializable 에러  (1) 2019.05.28
[JAVA] String To Date , Date To String  (0) 2018.11.29
반응형

포스팅 주제 

 - azure의 스토리지 서비스 중 blob 스토리지를 구축

 - blob스토리지에 사용자 도메인을 설정하여 접근 가능 도록 구축

 

 

1. azure의 스토리지 서비스 중 blob 스토리지를 구축

  -> blob 서비스 란 : 구조화되지 않은 데이터를 위한 REST 기반의 개체 스토리지

 - azure  스토리지 계정 추가 - 인스턴스 정보 중  'BlobStorage' 선택

- 컨테이너 만들기, 엑세스 수준 변경

  컨테이너 이름 설정,

  공용 엑세스 수준 

    -> 개인(익명 액세스 없음) : 계정 소유자 전용, 개인만 접근 허용

    -> Blob : 각 Blob에 대한 접근 허용

    -> 컨테이너 : 컨테이너와 그 안에 Blob 들에 대한 접근 허용

    특별한 보안을 요구하지 않는다면 컨테이너를 설정

 

 

2. 사용자 지정 도메인 설정

 - 사용자 지정 도메인 설정에 앞서 미리 도메인 관리자 측에서(후이즈, 가비아 등등) 지정하려는 도메인에 대한 CNAME 을 등록 해야 된다. 

가비아 도메인 관리자 페이지에서 CNAME 을 등록 
가비아에서 등록 한 도메인을 입력.

https://docs.microsoft.com/ko-kr/azure/storage/blobs/storage-custom-domain-name

스토리지 계정

 

Azure 스토리지 계정에 대한 사용자 지정 도메인 이름 구성

Azure Portal을 사용하여 고유한 CNAME(정식 이름)을 Azure 스토리지 계정의 Blob 스토리지 또는 웹 엔드포인트에 매핑합니다.

docs.microsoft.com

 

 

 

반응형

'IT' 카테고리의 다른 글

GCP MARIA DB 설치  (0) 2020.03.02
반응형

 

원인

@Data
@Entity
//@Table(name="t_wts_naverSid")
public class WebtoonEntity {

@Column(name="SID")
private String sid;

 

위의 상태에서 컴파일 시작 

org.hibernate.AnnotationException: No identifier specified for entity: com.emfldlem.webc.webtoon.Entity.WebtoonEntity

 

에러 발생

 

 

해결

엔티티 선언시 식별자를 선언해주지 않아서 발생하는 에러

@Data
@Entity
//@Table(name="t_wts_naverSid")
public class WebtoonEntity {

 

@Id
@Column(name="SID")
private String sid;

 

- 엔티티 내 특정 요소 중 하나에 @Id 어노테이션 추가 해준다.

반응형
반응형

지난번까지 보면


네이버 클라우드 플랫폼 micro 서버 만들기 - 포트 포워딩을 통해 공인 ip의 1089 포트를 내부 ip 22번 포트로 연결 - 접속 확인 


이후 단계는


ftp 연결 - jar 업로드 - jar 실행 - 웹페이지 확인 의 단계를 거칠 생각이다.




1. FTP 연결 

리눅스 FTP을 구글에 검색해본 결과 

vsftpd를 설치 및 설정 하고 파일질라 클라이언트를 통해 접속 하는 방법으로 진행


vsftpd 설정 후 아래와 같이 상태를 확인하였다.


ftp 기본 포트인 21번 포트에 정상적으로 서비스가 잘 올라가 있다.


이후 부터는 삽질을 연속이었다.




네이버 클라우드 플랫폼에서 제공해주는 공인ip는 ssh 접속을 위한 22번 포트에만 포트포워딩을 할 수있고, 다른 포트를 사용, 혹은 외부에서 접근이 가능하도록 하기 위해서는 공인 ip를 따로 발급 받아서 사용해야 됐다.




2.네이버 클라우드 플랫폼 공인IP 발급 방법

 



공인 IP 신청은 간단하다. 

1. server 하위 메뉴 중 Public IP 를 클릭

2. 공인 IP 신청

3. 떠오르는 팝업 내에서 공인 IP를 사용하고자 하는 서버를 선택

- 주의 할 점은 공인 IP는 서버 1대 당 1개를 발급 받을수 있으며 공인IP 발급은 비용이 발생한다. 무료 micro 서버를 사용하지만 공인 ip는 유료이다!!! 비용은 1달 사용 기준 약 4천원 (1시간 당 43원)





3. ACG(Access Control Group) 규칙 설정 / 네트워크 접근 규칙 설정

클라우드 환경을 처음 사용해 본 입장에서 생각을 못해서 FTP 연결에 삽질을 하였다.


ACG를 통해 22 PORT (FTP 기본 포트)  // vsftpd 를 사용시 환경설정에서 포트 변경 가능

의 접근을 허용 해 주어야 외부 ftp 클라이언트 프로그램에서 서버의 ftp로 접근이 가능하다.


 



4. jar 업로드 및 실행

파일 질라 클라이언트를 통해 접근을 한 뒤 jar 파일을 업로드 하였다.




jar 업로드 후 java -jar 명령어를 통해 jar 를 실행 


웹 페이지에서 공인아이피로 접근을 확인하였다.



이로써 내가 만든 결과물을 내 서버에 공인ip로 접근이 가능하 루트를 처음으로 만들어 보았다.






 추가 삽질

윈도우에서 jar 실행 명령어는 java -jar 혹은 javaw -jar 를 실행하였는데 

둘 다 푸티로 세션을 끈어 버리면 서버가 죽어버리는 현상이 있었다. 그래서 찾아보니 

사용자가 로그아웃해도 백그라운드에서 프로그램이 돌아가도록 실행을 시켜줘야 됐고 그 명령어로는


nohup java -jar *****.jar 


를 실행시켜 주면 된다.


출처 : https://wlsufld.tistory.com/22 




매번 윈도우 서버에서만 작업하다가

클라우드 플랫폼 & 리눅스 서버를 접하려니 삽질 하는게 많은 것 같다.

그래도 하나하나 배워나가면서 리눅스 서버와 클래우드 플랫폼에도 익숙해지면 언젠가는 다 도움이 될 것이다.

반응형
반응형
@Getter
@NoArgsConstructor //??
@Entity
@Table
public class Board {


@NoArgsConstructor

Lombok을 사용하면 생성자도 자동으로 생성할 수 있습니다. @NoArgsConstructor 어노테이션은 파라미터가 없는 기본 생성자를 생성해주고, @AllArgsConstructor 어노이션은 모든 필드 값을 파라미터로 받는 생성자를 만들어줍니다. 마지막으로 @RequiredArgsConstructor 어노테이션은 final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 만들어줍니다. 


출처 : http://www.daleseo.com/lombok-popular-annotations/




@Column
@Enumerated(EnumType.STRING)
private BoardType boardType;


@Enumerated

Enum 타입 매핑용 어노테이션. 

자바 enum형과 데이터베이스 데이터 변환을 지원.

실제로는 자바 enum형이지만 데이터베이스에서는 String형 변환하여 저장 하겠다는 선언 




@OneToOne(fetch = FetchType.LAZY)
private User user;


@OneToOne

 현재의 도메인과 현재 도메인의 필드인 User 도메인이 1:1 관계라는 것을 설정하는 어노테이션 

실제 DB에 저장 될 때는 User 객체가 저장되는 것이 아닌 User 도메인의 PX 값이 저장 됨.

fetch 는 eager  // lazy 두 종류가 있고

전자는 처음 Board 도메인을 조회할 대 즉시 관련 User 객체를 조회 하는 의미

후자는 User객체를 조회하는 시점이 아닌 객체가 실제로 사용 될 때 조회 한다는 의미




반응형

+ Recent posts