본문 바로가기

전체 글14

equals() & hashCode() - hashCode() 목적은 객체들을 식별하기 위한 값. 단 서로 다른 객체라도 동일한 hashCode()를 가질 수 있다(HashCode Collisions) Java애플리케이션을 실행하는 동안 동일한 개체에 대해 호출될 때마다 해시 코드 메서드는 개체에 대한 동등한 비교(equals)에 사용되는 정보가 수정되지 않는 한 동일한 정수를 일관되게 반환해야 한다. Default는 Object 클래스의 구현체로써 객체의 내부 메모리 주소를 숫자로 변환한 값을 기반으로 한다) - equals() 객체의 동등성을 비교하는데 사용. - equals() 와 hashCode()의 관계 만약 두 객체가 equals()를 통한 동등한 객체인 경우, hashCode() 함수 호출 결과는 반드시 동일한 정수를 반환해야한다.. 2020. 3. 24.
Java Synchronized vs ReentrantLock Synchronized import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MultiThreadTest { private static Logger logger = LoggerFactory.getLogger(MultiThreadTest.class); public static void main(String[] args) { Target target = new Target(); new Thread(() -> target.criticalSection()).start(); new Thread(() -> target.criticalSection()).start(); Target2 target2 = new Target2(); new Thread.. 2020. 3. 18.
React 사용 후기 및 개념 정리 Core Concept 1. Virtual DOM 화면에 변화가 일어났을 때 더 적은 리소스로 빠르게 업데이트를 한다. 개념적으로는 브라우저에는 실제 DOM이 아닌 리액트가 생성한 가상 DOM을 렌더링한 후 엘리먼트가 변경될 경우 React가 변경 내용을 연산해서 가상 DOM에서 필요한 부분만 업데이트 한다. 2. Component 리액트의 모든 구성요소는 컴포넌트이다. 버튼, 폼, 레이아웃, 화면에 이르기까지 대부분의 구성요소들은 컴포넌트화 된다. 얼마나 작게 분해하냐, 큰 덩어리로 뭉치느냐 차이가 있을 뿐 전부 컴포넌트다. 그리고 적절한 컴포넌트로 코드 재사용성을 높인다. 3. 단방향 데이터 바인딩 먼저 양방향 데이터 바인딩과 단방향 데이터 바인딩의 차이는 HTML에서 변경된 내용이 데이터 영향을 미.. 2020. 2. 28.
SpringBoot에 Let's Encrypt 적용 Spring Boot에 Let's Encrypt 적용하기 ##Let's Encrypt? https://letsencrypt.org/ 사이트에 HTTPS를 적용하기 위해서는 Certificate Authority에서 발급한 인증서가 필요하다. 일반적으로는 CA에서 돈을 지불하고 인증서글 구입해야 하지만, HTTPS를 보급화 하기 위한 몇몇 조직들의 후원으로 무료 CA인 Let's Encrypt가 탄생했다. 아쉬운 점은 인증서의 기간이 최대 90일로 비교적 짧은 편이다. 하지만 Certbot을 이용해 자동 갱신이 가능하다. 설치하기 https://letsencrypt.org/getting-started/ 인증서를 설치하기 위해서 크게 두 가지 방법이 있는데, 첫번째는 shell을 이용, 이용하지 않는 방법이.. 2020. 2. 23.