본문 바로가기

CLASS

(3)
아무 관심 없던 @Retention 어노테이션 정리(RetentionPolicy SOURCE vs CLASS vs RUNTIME) @Retention annotation 관심 갖게 된 이유 자바에서 지향하는 방법은 아니지만 필요에 의해서 커스텀 애노테이션(Annotation)을 만들어야 할 때가 있습니다. 보통 예제 샘플 코드를 보면 메타 애노테이션으로 항상 붙어있고 RetentionPolicy=RUNTIME으로 되어습니다. 그렇기 때문에 그럴 때나 보게되는 애노테이션이라 @Retention 은 무시하고 @Target 정도만 확인하고 써왔습니다. 명확히는 @Retention 이라는 애노테이션이 있는지도 모르고 있었습니다. 그러던 중 회사 코드에서 JPA 엔티티(Entity) 클래스의 필드에 롬복(lombok)의 @NonNull 이 쓰인 것을 확인하고 이게 동작하는지가 궁금해지면서 찾아보게 되었습니다. 설명을 읽어보면 @Retenti..
ES6 Class (클래스, Syntactic sugar, prototype을 이용하지만 문법적으로 예쁘게 만들어주는 class) 클래스(Class) - Syntactic sugar 문법적 설탕! 자바스크립트의 클래스(Class)다.기존 자바스크립트 ES5 문법으로도 객체 지향 프로그래밍을 할 수 있었다. (prototype을 이용해서)하지만 자바스크립트 문법을 배우는 사람들에게 가장 어려움을 안겨주던 것이 바로 prototype이다.그래서 ES6에서는 java와 같은 객체 지향 프로그래밍 언어에서 사용하는 것과 유사하게 class를 사용할 수 있게 문법을 제공한다.새로운 문법이 나온 것은 아니고 기존의 prototype으로 트랜스컴파일(?)해주는 것이다.1234567891011121314151617181920// ES5var Person = (function () { // Constructor function Person(name..
C# 클래스 (static, 생성자, namespace, Main) C# 클래스 현실 세계를 모델링하여 사물을 속성과 행위로 나눠 코드로 표현123456789class Book{ string title; decimal ISBN13; string Content; string Author; int pageCount;} Book gulliver = new Book(); 단순히 속성만 있는 클래스를 정의하고 생성하는 코드.객체 지향 프로그래밍에서는 저런 객체들 간의 행위를 통해 코드를 작성함.1234567891011121314class Book{ public string Title; public decimal ISBN13; public string Contents; public string Author; public int PageCount; public void Open(){..