Java/Spring
-
* 의존성 주입(DI, Dependency Injection)프로그래밍에서 구성요소간의 의존 관계 소스코드 내부가 아닌 외부의 설정파일 등을 통해 정의되게 하는 디자인패턴중에 하나이다. 간단하게 말해서 의존성 주입이란 외부에서 의존 객체를 생성하여 넘겨주는 것예를 들어 A Class와 B Class 가 존재한다A Class가 B Class를 의존할때 B Object를 A가 직접 생성하지 않고 외부에서 생성하여 넘겨주면 의존성을 주입했다고 한다. 왼쪽 그림은 일반적인 A Class에서 B Object를 생성하는 형태이고, 오른쪽 그림은 A Class에서 B Object를 외부에서 생성하여 의존주입하는 형태이다.DI(의존성 주입)를 위해서 객체를 생성하고 넘겨주는 일은 DI Framework가 하는 일..
DI(Dependency Injection, 의존성 주입)* 의존성 주입(DI, Dependency Injection)프로그래밍에서 구성요소간의 의존 관계 소스코드 내부가 아닌 외부의 설정파일 등을 통해 정의되게 하는 디자인패턴중에 하나이다. 간단하게 말해서 의존성 주입이란 외부에서 의존 객체를 생성하여 넘겨주는 것예를 들어 A Class와 B Class 가 존재한다A Class가 B Class를 의존할때 B Object를 A가 직접 생성하지 않고 외부에서 생성하여 넘겨주면 의존성을 주입했다고 한다. 왼쪽 그림은 일반적인 A Class에서 B Object를 생성하는 형태이고, 오른쪽 그림은 A Class에서 B Object를 외부에서 생성하여 의존주입하는 형태이다.DI(의존성 주입)를 위해서 객체를 생성하고 넘겨주는 일은 DI Framework가 하는 일..
2021.08.28 -
보통 @Autowired 어노테이션을 사용해 의존성 자동 주입을 한다. 하지만 @Autowired 어노테이션을 사용해 의존성을 자동 주입하는데 동일한 bean 객체가 2개일 경우 Exception(예외)가 발생한다. 스프링 컨테이너 초기화 과정에서 Exception 예외 발생 * @Autowired 어노테이션을 사용해 의존성 자동 주입 과정에서 bean 객체가 한개여야 하지만 두개 이상의 bean일 경우 예외 발생 이러한 문제를 해결하기 위해서 @Qualifier 어노테이션이 필요하다. @Qualifier 어노테이션은 사용할 의존 객체를 선택할수 있다. @Autowired @Qualifier(value = "bean 객체 이름") LicenseService ls; * @Quali..
@Qualifier 어노테이션보통 @Autowired 어노테이션을 사용해 의존성 자동 주입을 한다. 하지만 @Autowired 어노테이션을 사용해 의존성을 자동 주입하는데 동일한 bean 객체가 2개일 경우 Exception(예외)가 발생한다. 스프링 컨테이너 초기화 과정에서 Exception 예외 발생 * @Autowired 어노테이션을 사용해 의존성 자동 주입 과정에서 bean 객체가 한개여야 하지만 두개 이상의 bean일 경우 예외 발생 이러한 문제를 해결하기 위해서 @Qualifier 어노테이션이 필요하다. @Qualifier 어노테이션은 사용할 의존 객체를 선택할수 있다. @Autowired @Qualifier(value = "bean 객체 이름") LicenseService ls; * @Quali..
2021.08.28 -
- hashCode() : 객체(Object) 의 해시코드란 객체의 고유한 정수값을 의미한다. : 객체의 메모리주소를 이용해서 해시코드를 생성한후 반환한다. : 두 객체가 같은 객체인지 확인하는 메소드 - equals() : 객체의 equals() 메소드는 == 와 같은 동일한 역할을 한다. : 두 객체의 내용이 같은지 확인하는 메소드 * 위 그림과 같이 객체의 hashCode() 와 equals()를 재정의를 해야 객체 내용을 비교할수 있다. * 메소드 재정의를 해야하는 이유는 HashSet, HashMap, HashTable과 같은 프레임워크에서 hashCode() 결과값인 해시코드 값이 다를경우 다른객체로 판단한다. 그렇기 때문에 재정의해줘야 한다.
Java hashCode(), equals()- hashCode() : 객체(Object) 의 해시코드란 객체의 고유한 정수값을 의미한다. : 객체의 메모리주소를 이용해서 해시코드를 생성한후 반환한다. : 두 객체가 같은 객체인지 확인하는 메소드 - equals() : 객체의 equals() 메소드는 == 와 같은 동일한 역할을 한다. : 두 객체의 내용이 같은지 확인하는 메소드 * 위 그림과 같이 객체의 hashCode() 와 equals()를 재정의를 해야 객체 내용을 비교할수 있다. * 메소드 재정의를 해야하는 이유는 HashSet, HashMap, HashTable과 같은 프레임워크에서 hashCode() 결과값인 해시코드 값이 다를경우 다른객체로 판단한다. 그렇기 때문에 재정의해줘야 한다.
2021.08.28 -
HashSet : 중복을 허용하지 않는다. : 순서를 보장하지 않는다. : null 값을 저장할수 있다. : 내부적으로 HashMap을 사용하여 데이터를 저장한다. * 사용 예 HashSet에 배열 데이터를 넣어놓고 contains를 사용하여 값이 존재하면 True, 없을시 False를 반환 ex) HashSet set = new HashSet(Arrays.asList(배열명)); boolean b = set.contains("문자열"); * Arrays.asList(배열명); Arrays.asList(배열) 을 사용하면 괄호안 배열의 주소값을 그대로 HashSet 에 저장한다. 새로운 배열을 생성하는게 아닌 괄호안 배열의 주소값을 그대로 저장하기 떄문에 수정 삭제 불가능?
HashSet<T>HashSet : 중복을 허용하지 않는다. : 순서를 보장하지 않는다. : null 값을 저장할수 있다. : 내부적으로 HashMap을 사용하여 데이터를 저장한다. * 사용 예 HashSet에 배열 데이터를 넣어놓고 contains를 사용하여 값이 존재하면 True, 없을시 False를 반환 ex) HashSet set = new HashSet(Arrays.asList(배열명)); boolean b = set.contains("문자열"); * Arrays.asList(배열명); Arrays.asList(배열) 을 사용하면 괄호안 배열의 주소값을 그대로 HashSet 에 저장한다. 새로운 배열을 생성하는게 아닌 괄호안 배열의 주소값을 그대로 저장하기 떄문에 수정 삭제 불가능?
2021.08.25 -
- JWT(Json Web Token) : 토큰기반시스템 : Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token : 토큰 자체를 정보로 사용한다. : 주로 회원인증이나 정보 전달에 사용된다. : Header.Payload.Signature * Header : "typ": "JWT" : "alg":"HS256" (HMAC SHA256 = HS256) * Payload : 토큰에서 사용될 정보의 조각들인 클레임이 들어있다. * Signature : 클라이언트의 유효성 검사를 위한 암호화 코드 1. 유저가 id, pw를 입력하여 로그인한다. 2. 서버측에서 해당 계정정보를 검증한다. 3. 계정정보가 일치하면, 서버측에서 유저에게 sign 토큰을 발급 4. ..
JWT(Json Web Token)- JWT(Json Web Token) : 토큰기반시스템 : Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token : 토큰 자체를 정보로 사용한다. : 주로 회원인증이나 정보 전달에 사용된다. : Header.Payload.Signature * Header : "typ": "JWT" : "alg":"HS256" (HMAC SHA256 = HS256) * Payload : 토큰에서 사용될 정보의 조각들인 클레임이 들어있다. * Signature : 클라이언트의 유효성 검사를 위한 암호화 코드 1. 유저가 id, pw를 입력하여 로그인한다. 2. 서버측에서 해당 계정정보를 검증한다. 3. 계정정보가 일치하면, 서버측에서 유저에게 sign 토큰을 발급 4. ..
2021.08.25 -
@SelectKey 어노테이션 사용 mysql 에서 @INSERT 어노테이션을 사용하여 insert를 했을경우 입력된 primary key가 필요할떄가 있다 그때 입력후에 바로 리턴받는 방법이 @SelectKey 어노테이션을 사용한다. @SelectKey ( statementType=statementType.PREPARED, statement="SELECT LAST_INSERT_ID()", keyProperty="seq", before=false, resultType=int.class ) public int testSelectKey(Test test); // Test Model public Class Test { int seq; String name; String number; } keyPrope..
@SelectKey, <selectKey>@SelectKey 어노테이션 사용 mysql 에서 @INSERT 어노테이션을 사용하여 insert를 했을경우 입력된 primary key가 필요할떄가 있다 그때 입력후에 바로 리턴받는 방법이 @SelectKey 어노테이션을 사용한다. @SelectKey ( statementType=statementType.PREPARED, statement="SELECT LAST_INSERT_ID()", keyProperty="seq", before=false, resultType=int.class ) public int testSelectKey(Test test); // Test Model public Class Test { int seq; String name; String number; } keyPrope..
2021.08.25