분류 전체보기

들어가기 전에 Java에서는 stream()을 통해 collection 요소를 하나씩 참조하여 반복적인 작업을 할 수 있습니다. Kotlin에는 Collections 자체에 filter(), map() 등의 API를 제공하고 있어 stream() 없이도 collection 요소에 하나씩 참조가 가능합니다. 위 내용만 보면, Java에서 collection에 stream() 붙여서 사용하는 경우와 Kotlin에서 collection의 API를 호출하는 경우 동일하게 연산이 이루어질 것 같지만 서로 상이하게 연산을 진행합니다. Java의 stream: Lazy Evaluation Kotlin의 collection 기본 연산(iterable): Eager Evaluation 이번 포스팅에서는 Kotlin의 c..
배경 github 정책상, private repository에 대해 password 인증을 통해 git clone 하는 방식이 제거되어 access token을 활용한 git clone이 필요해졌습니다. personal access token 생성하기 먼저, github에 로그인 한 뒤 본인의 프로필을 클릭해 settings > Developer settings에 접근합니다. Developer settings에서 Personal access tokens을 선택하여 token을 생성합니다. Generate new token 버튼을 누르면 token을 생성할 수 있고, repo 관련된 작업을 할 것이기 때문에 repo과 관련된 권한을 가진 token을 생성해야 합니다. 추가적으로, 생성된 토큰은 다시 볼 수..
·DB/Oracle
DataGrip에서 프로시저 수행하기 DataGrip에서 프로시저를 수행하기 위해서는 EXEC 프로시저명();이 제대로 작동하지 않습니다. EXEC는 SQL 또는 PL/SQL의 고유 기능이 아닌, SQL *Plus의 기능이기 때문입니다. 따라서, 아래와 같이 프로시저를 실행해야 합니다. 먼저, 실행하고자 하는 프로시저를 마우스 우클릭한 후 Run Procedure...을 클릭합니다. 프로시저 내에 넣어야 하는 파라미터가 존재한다면 해당 파라미터를 수정한 후 OK를 눌러 수행합니다. 참고 자료 stackoverflow - How to execute PL/SQL procedures from DataGrip
객체를 만들어야 할때와 만들지 말아야 할 때를 구분하자. 올바른 객체 생성 방법과 불필요한 생성을 피하자. 객체가 제때 파괴됨을 보장하고, 파괴 전 수행해야 할 정리 작업을 관리하자. 아이템6: 불필요한 객체 생성을 피하라 기존 객체를 재사용해야 한다면 새로운 객체를 만들지 마라 똑같은 기능의 객체를 매번 생성하기보다는 객체 하나를 재사용하는 편이 나을때가 많습니다. 특히, 불변 객체는 언제든 재사용할 수 있습니다. String s = "test"; 이 코드는 새로운 인스턴스를 매번 만드는 대신 하나의 String 인스턴스를 사용합니다. 위 구조로 String 인스턴스를 생성한다면, 동일한 문자열 리터럴을 사용하는 모든 코드가 같은 객체 재사용함이 보장됩니다. String 클래스는 public final..
객체를 만들어야 할때와 만들지 말아야 할 때를 구분하자. 올바른 객체 생성 방법과 불필요한 생성을 피하자. 객체가 제때 파괴됨을 보장하고, 파괴 전 수행해야 할 정리 작업을 관리하자. 아이템1: 생성자 대신 정적 팩토리 메소드를 고려하라 특정 클래스의 인스턴스를 얻는 방법 중 가장 먼저 떠오르는 건 public 생성자을 이용한 방법일 것입니다. 하지만, 모든 개발자들은 정적 팩토리 메소드(static factory method)를 통해 인스턴스를 얻는 방법 역시 알고 있어야 합니다. 정적 팩토리 메소드를 통해 인스턴스를 제공하는 방식에는 장단점이 존재합니다. 정적 팩토리 메소드 장점 1. 이름을 가질 수 있다. 정적 팩토리 메소드는 이름만 잘 지으면 반환될 객체의 특성을 쉽게 묘사가 가능합니다. 특정 자..
IntelliJ JAVA Usages 보이는 방법 IntelliJ에서 메소드를 리팩토링할 때에 메소드가 어디어디에서 사용하는지 확인이 필요합니다. 이때, 메소드를 클릭해서 확인해볼 수도 있지만, IntelliJ 설정을 통해 좀 더 쉽게 몇 군데에서 해당 메소드를 사용하는지 체크할 수 있습니다. 이번 포스팅에서는 Usages 표시하는 방법에 대해 알아보겠습니다. 먼저, IntelliJ IDEA의 Preferences를 클릭하여 설정창에 들어갑니다. 설정 내용 중 Editor > Inlay Hints > Java를 클릭하면 Code vision 항목에 대한 설정을 할 수 있으며, 여기서 Usages 사용 여부를 체크해주면 됩니다. Inheritors에 대해서도 보고 싶다면 아래 그림처럼 Inheritors ..
들어가기 전에 프로젝트를 진행하면서, 가독성 있게 코드를 작성하기 위해 메소드를 구성하다보니, 각각 다른 API에 대해 비슷한 형태의 로직이 중복적으로 발생하였습니다. 이 로직 중에는 공통 코드(예: 객체 만드는 코드)가 존재하기 때문에 중복을 제거하고, 추후 유지보수가 편할 수 있도록 Template Method Pattern을 적용하고자 합니다. 이번 포스팅에서는 소스코드 리팩토링 시 사용할 Template Method Pattern에 대해 알아보도록 하겠습니다. Template Method Pattern 템플릿 메소드 패턴은 알고리즘 골격을 정의합니다. 템플릿 메소드를 사용하면 알고리즘의 일부 단계를 서브클래스에서 구현할 수 있으며, 알고리즘 구조는 그대로 유지하면서 알고리즘의 특정 단계를 서브클래..
·FRAMEWORK/Spring
들어가기 전에 @Controller는 전통적인 Spring controller로써 오래 사용되어졌습니다. Spring 4.0에서는 @RestController라는 좀 더 RESTful한 웹서비스를 간단히 만들 수 있는 어노테이션이 소개되었습니다. 이번 포스팅을 통해 간단히 두 가지 어노테이션의 차이를 살펴보겠습니다. Spring MVC @Controller @Controller 어노테이션은 @Component 어노테이션을 가지고 있어 classpath 스캔을 통해 자동으로 구현체를 감지할 수 있습니다. 일반적으로 @Controller는 @RequestMapping 어노테이션과 함께 많이 쓰입니다. @Controller @RequestMapping("books") public class SimpleBoo..
EARTH_ROOPRETELCHAM
'분류 전체보기' 카테고리의 글 목록 (4 Page)