본문 바로가기

hooneats

(52)
IntelliJ 의 편리한 기능 - 인레이 힌트 환경설정 > 에디터 > 인레이 힌트라는 설정이 있다. 이를 통해 구현되어있는 곳, 사용하고 있는 곳 등으로 손쉽게 이동할 수 있게 인텔리제이가 표시를 해준다. 한번 써보면 편리한 기능이여서 특히 인터페이스를 많이 활용해야하는 우리 자바 개발자에게는 구현체로 손쉽게 이동할 수 있어서 코드 보기에 진짜 좋은 기능인것 같다!
Jpa 의 변경감지를 통한 업데이트를 Reflection 을 이용해 해보자 어느날 친구에게서 Jpa 사용시 업데이트를 어떤 방식으로하는지 질문이 들어왔다. jpa 를 사용하는 많은곳은 jpa 의 더티체킹 즉 변경감지를 통해 업데이트를 할 것이다. 이때 좋은 업데이트를 위한 여러가지 고려할 사항이 있다. 1. 무분별한 setter 를 사용하지 마라. - 이는 무분별한 setter 사용으로 인해 안전하게 다루어져야할 데이터가 쉽게 변경될 수 있고, 이러한 변경점을 찾기 힘들게 되어 향후 유지보수를 어렵게 만들기 때문이다. -> 이러한 해결점으로 entity 내에 상태변경 메서드를 만들 수 있다. 2. entity 의 상태변경이 필요할 때 적절한 메서드를 만든다. - 이는 entity class 의 크기가 커져, 이또한 유지보수가 힘들어질 수 있다. 사실 그동안 이러한 고민을 알고는..
java -> kotlin 코틀린을 공부하다보니 내가 자바코드를 굉장히 불안전하게 사용하고 있었음을 느끼게되었다. null 을 다루지 말고, final 이라든지 @NotNull 이라든지 @Nullable 이라든지 좀 더 데이터를 정확하고 안전하게 다루어야겠다. 내용은 다음 강의를 보고 정리 하였다. 인프런_자바 개발자를 위한 코틀린 입문 java -> kotlin long -> var final long -> val long number = 10L; -> var number : Long = 10L var number = 10L Long number = null; -> var number : Long? = null Person person = new Person("~~~"); -> var person = Person("~~~") p..
Solidity 기본 문법 Solidity Docs Solidity Example Solidity 타입 // SPDX-License-Identifier: GPL-3.0 -> 오픈소스 라이선스관련사항 명시 pragma solidity ^0.5.13; contract WorkingWithVariables { // 모든 정수 변수는 null 이아닌 0으로 초기화가 된다. // bool 은 false 로 초기화된다. // string 은 빈문자열로 초기화된다. // uint 는 양의 정수를 말한다. uint256 public myUint; // uint 는 utin256 의 가명 function setMyUint(uint _myUint) public { myUint = _myUint; } // bool 은 false 로 초기화된다. bo..
kubernetes 개념 쿠버네티스란? 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다. 컨테이너화 되었다구? 전통적인 방식의 배포는 한 물리서버내에 여러 애플리케이션을 배포하는 방식이었다. 이는 하나의 애플리케이션이 많은 리소스를 차지하면 다른 애플리케이션에 성능저하를 불러오는 등 리소스 할당에 문제가 있었다. 이에대한 해결책으로 여러 물리서버에 각 애플리케이션을 배포하였는데 이는 각각의 물리서버의 리소스를 충분히 활용하지 못하는 작은 애플리케이션이라면 자원 및 비용의 낭비를 불러일으키는 문제가 있어, 확장가능하다고 보기 어렵다. 가상화를 사용한 배포는 단일 물리 서버의 CPU에서 여러 가상 시스템 (VM)을 실행할 수 있다. 가상화를 사용하면 VM간에 애플리케이션을 격..
Docker container 를 활용해 CI/CD 실습해보자 feat(Jenkin, Ansible, Minikube) DevOps 또한 자동화를 한다거나 코드로 관리할 수 있다면 얼마나 좋을까? 이러한 수요로인해 요즘 각광받고 있는것이 바로 IaC(Infrastructure as Code) 이다. 대표적으로 'ansible' 과 'terraform' 이 있는데, terraform' 의 경우 필요한 라이브러리나 서비스를 설치하는 단계인 프로비저닝에서 많이 사용하고, 자동화를 'ansible' 로 구성하는 두 가지 IoC 툴을 혼용하는 추세이다. 참고 기사 인프라 관리 자동화, ‘IaC’로 구현한다 이번 실습에서는 docker , jenkins , ansible , kubernetes(minikube활용) 을 사용해 어떤식으로 배포를 할 수 있는지 알아보도록 하자. Docker 를 활용하면 virtualBox 를 활용한 것..
동시성 문제 / Synchronized / Pessimistic Lock / Optimistic Lock 간단하게 살펴보자 참고 강의 재고시스템으로 알아보는 동시성이슈 해결방법 - 인프런 | 강의 동시성 이슈란 무엇인지 알아보고 처리하는 방법들을 학습합니다., - 강의 소개 | 인프런... www.inflearn.com 우리의 프로그램을 자원을 감시하는 감시자라 생각해보자. 그리고 필요한 데이터를 자원이라하고 자원을 사용하는 여러명의 사용자들을 각각의 쓰레드라고 가정하고 생각을 해보자. 만약 100개의 자원이 존재하고 쓰레드들이 자원을 하나씩 가져가는 상황일때, 감시자는 자원을 쓰레드들에게 하나씩 내어주고 하나씩 자원의 수를 감소시켜 관리할 것이다. 그런데 이때 쓰레드들이 거의 동시다발적으로 자원을 가져가면 어떻게될까? 감시자는 멘봉이 올 것이다... 쓰레드 1에게 자원을 나눠주고 아직 자원의 수량을 감소시키지도 않았는데 다..
IntelliJ 플러그인을 활용해 마지막 Git 커밋 사용자를 표시해보자 협업시 누가 코드를 수정했고 커밋 내용까지 쉽게 확인할 수 있는 Git 관련 플러그인이 있다. 다음과 같이 포커스 되어있는 라인을 수정한 마지막 커밋 사용자와 커밋 내용을 표시해준다. 설정방법은 간단하다. IntelliJ에서 GitToolBox 라는 플러그인을 설치하면 된다.