노션으로 연차관리대장 만들기 예전 회사 다닐때, 연차 관리가 안되서 엑셀로 사용일 적어두는용으로 간단하게 휴가관리대장을 만들었었는데, 이직하면서 그 파일이 어디갔는지 모르겠기도 하고, 맥이라 엑셀 설치 안해놨어서 요즘 트렌드에 맞게 노션으로 휴가관리대장을 만들었다. 강과 같은 이 블로그를 보고 구현할 수 있게 되었다. 노션(Notion)으로 연차대장 구현하기 노션(Notion)으로 연차대장 구현하기 HR 담당자에게는 모든 직원의 연차를 정확하게 관리해야 하는 막중한 사명이 있습니다. 큰 품이 드는 일은 아니지만, 누군가의 연차를 잘못 계산했다가 뒤늦게 이 사실을 알게 되었다고 상상해 team.postype.com ✨ 완성본 구현 기능 내 연차 현황을 한눈에 알아볼 수 있음. 발생 연차(입력) 사용내역(하..
빌더를 사용하는 장점은 무엇인가?1. setter 방식의 단점기존의 자주 사용하던 자바빈즈 패턴(= setter) 의 경우, 객체 하나를 만드려면여러개의 메서드를 호출해야 하고, 객체가 완전히 생성되기 전까지는 일관성이 무너진 상태에 놓이게 된다.(=객체의 불변성이 깨진 상태)멀티 스레드 환경에서 안정성을 얻으려면 추가 작업을 해줘야 한다.예) 여러개의 스레드가 Student라는 객체에 접근했을 때1번 스레드는 Student에 아무 값이 없는 빈 객체일수도 있고 2번 객체는 이름과 나이가 setter로 설정된객체일 수도 있다. 하지만 setter를 제거하고 애초에 처음 만들때 값을 가진 객체로 생성하고그 값이 불변하다면 Thread-safe 하다고 말할 수 있다.2. 불변 객체(1) 생성자그럼 객체를 불..
예를들어 apple, banana, grape 가 있으면 보통 for문으로 돌려서.. 마지막 콤마는 빼는 로직을 사용했었다. 이거보다 더 좋은 방법이 있을 거 같았는데 도저히 생각이 안났는데 ㅎ.. 쉬운 방법을 놓고 돌아가고 있었네.. Java8에 추가된 String.join() 메서드 List, Array List fruits = Arrays.asList("apple","banana", "grape"); String result = String.join(",", fruits); EnumSet EnumSet.allOf(Topping.class).stream().map(Enum::toString).collect(Collectors.joining(", "));
인프런 강의 : 스프링 핵심 원리 강의를 듣던 중.. @PostConstruct, @PreDestroy 애노테이션의 특징 최신 스프링에서 가장 권장하는 방법이다. 애노테이션 하나만 붙이면 되므로 매우 편리하다. 패키지를 잘 보면 javax.annotation.PostConstruct 이다. 스프링에 종속적인 기술이 아니라 JSR-250 라는 자바 표준이다. 따라서 스프링이 아닌 다른 컨테이너에서도 동작한다. 컴포넌트 스캔과 잘 어울린다. 유일한 단점은 외부 라이브러리에는 적용하지 못한다는 것이다. 외부 라이브러리를 초기화, 종료 해야 하면 @Bean의 기능을 사용하자. 여기서 마지막 줄 유일한 단점은 외부 라이브러리에서는 적용하지 못한다. 라는 말이 있었는데.. 사실 이 말이 제대로 와닿지 않았다. 외부..