post-thumbnail

[Spring Security] Bcrypt의 salt는 무엇일까?

Brypt의 salt에 대해 알아보자

2023년 7월 30일
·
1개의 댓글
·
post-thumbnail

액세스 토큰과 리프레시 토큰

JWT Access Token, Refresh Token에 대해 자세히 알아보자!

2023년 7월 16일
·
0개의 댓글
·
post-thumbnail

전략 패턴 (Strategy Pattern)

전략 패턴은 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화하는 인터페이스를 정의하여, 객체의 행위를 동적으로 바꾸고 싶은 경우 행위를 직접 수정하지 않고 전략을 바꿔주는 유연한 확장 방법을 말합니다.

2023년 6월 4일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item23 - 태그 달린 클래스보다는 클래스 계층구조를 활용하라

다음 예시와 같이 현재 표현하는 의미를 태그로 알려주는 클래스를 가끔 볼 수 있다. shape 멤버 변수로 나타내는 것이다.이러한 코드는 일단 문제가 많다. 열거 타입을 선언해야 하고, area 메소드의 switch 문 등의 비효율적인 코드가 들어가게 된다.

2023년 5월 9일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item22 - 인터페이스는 타입을 정의하는 용도로만 사용하라

인터페이스는 클래스에 자신이 어떤 기능을 할 수 있는지를 알려주는 역할이다. 인터페이스는 오직! 이 용도로만 사용되어야 한다.이 용도 외에 잘못 설계된 예시가 있는데, 바로 상수 인터페이스이다. 상수 인터페이스는 static final 필드로만 이루어진 인터페이스다.

2023년 5월 4일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item21 - 인터페이스는 구현하는 쪽을 생각해 설계하라

자바 8 전에는 인터페이스에 메소드를 추가할 방법이 없었다. 그런데 디폴트 메소드라는 방법이 생겼는데 이것을 사용하면 되지 않을까라는 물음이 생길 수 있다.

2023년 5월 3일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item20 - 추상 클래스보다는 인터페이스를 우선하라

추상 클래스와 인터페이스는 모두 인스턴스 메소드를 구현 형태로 제공할 수 있다.하지만 추상 클래스를 구현하는 클래스는 반드시 하위 클래스가 되어야 한다는 것이다. 자바에서는 단일 상속만 지원하기 때문에 엄청난 부담이 될 것이다.인터페이스의 장점을 알아보자.

2023년 5월 1일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item19 - 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라

평소에 개발할 때 상속을 하여 개발할 일이 많을 것이다. 근데 이러한 상속하는 과정에서 다양한 것을 고려하지 않으면 에러가 발생할 수 있다. 한번 알아보자. 먼저, 문서화를 해야 한다!

2023년 4월 30일
·
0개의 댓글
·
post-thumbnail

HTTP에서 HTTPS로의 좌충우돌 여행기

HTTP에서 HTTPS로 바꾸기 위해 내가 했던 시도들과 삽질들을 소개하려고 한다.먼저 내가 처음으로 적용했던 SSL 인증 방식에 대해 살펴보자.환경 : Amazon Linux 2023, AWS Certificate Manager, Route 53, ALB

2023년 4월 26일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item18 - 상속보다는 컴포지션을 사용하라

우리가 코드를 재사용할때 상속을 썼었다. 그런데 상속이 항상 최선의 방법일까?같은 패키지 안이거나 확장적인 목적이고 문서화가 잘된 클래스는 문제가 없다.이런 케이스가 아닌 이상 구체 클래스를 상속하는 것은 위험하다..(인터페이스 간, 인터페이스 상속 제외)

2023년 4월 25일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item17 - 변경 가능성을 최소화하라

불변 클래스라 함은 인스턴스의 내부 값을 수정할 수 없는 클래스를 의미한다. 이는 생성부터 객체가 파괴될 때까지 변함없다.다음은 클래스를 불변으로 만들기 위한 다섯 가지 규칙이다.객체의 상태를 변경하는 메소드를 제공하지 않는다.클래스를 확장할 수 없도록 한다:

2023년 4월 24일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item16 - public 클래스에서는 public 필드가 아닌 접근자 메소드를 사용하라

해당 클래스에 필드는 자유롭게 접근가능하므로 캡슐화가 이루어지지 못한다.불변식을 보장할 수 없고, 외부에서 필드에 접근할 때 추가적인 작업을 할 수도 없다. (ex. Locking)public 클래스라면 이 방식으로 접근자를 제공함으로써 유연성을 얻을 수 있다.

2023년 4월 21일
·
0개의 댓글
·
post-thumbnail

[Effectiva Java] item15 - 클래스와 멤버의 접근 권한을 최소화하라

일반적으로 캡슐화가 잘 이루어지면 잘 설계된 컴포넌트라고 한다. 내부 구현과 공개 API를 철저히 분리한다.내부 정보를 숨기는 것에는 장점이 많은데 다음과 같다.시스템 개발 속도를 높인다: 병렬 개발 가능시스템 관리 비용을 낮춘다.

2023년 4월 20일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item14 - Comparable을 구현할지 고려하라

코딩을 하면서 값을 비교하는 경우는 굉장히 많다! 다양한 경우가 많은데 새로운 객체를 만들 때는 Comparable을 구현할지 고려해야 할 것이다.Comparable 인터페이스는 다음과 같이 생겼다.equals의 규약과 compareTo의 규약은 비슷하다.

2023년 4월 19일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item13 - clone 재정의는 주의해서 진행하라

clone 메소드는 원본 객체의 필드값과 동일하게 새로운 객체를 생성해주는 메소드이다.여기서 native라는 키워드가 있는데 자바에서 다른 언어를 사용할 수 이게 만들어주는 키워드이다.

2023년 4월 18일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item12 - toString을 항상 재정의하라

Object의 기본 toString 메소드를 사용해서 객체를 출력하면 Address@abcdd 같이 클래스명@16진수\_해시코드로 반환된다.여기서 어떤 유익한 정보를 얻을 것 같은가? Address 클래스는 주소지를 알려주는 것이 훨씬 유익할 것이다.

2023년 4월 17일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item11 - equals를 재정의하려거든 hashCode도 재정의하라

item10과 연결되는 내용인데, equals를 재정의할 때는 hashCode도 재정의해야 한다.그렇지 않으면, HashMap, HashSet에서 문제를 일으킬 것이다.아래는 Object 명세에서 발췌된 규약이다.

2023년 4월 16일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item10 - equals는 일반 규약을 지켜 재정의하라

equals 메소드는 굉장히 중요하다! 대부분의 경우에는 우리가 원하는 비교를 수행해준다. 정 그래도 재정의를 해야겠다면 조심해야 한다. 재정의를 할 때는 아래의 체크리스트를 확인해보자.각 인스턴스가 본질적으로 고유함: 다른 객체는 절대 같을 수가 없다

2023년 4월 15일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item9 - try-finally보다는 try-with-resources를 사용하라

자바 라이브러리 중에는 close로 닫아줘야 하는 자원들이 많은데 InputStream, java.sql.Connection 등이 그 예다.item8에서 close의 안전망으로 finalizer를 사용하는 경우도 있다고 했지만 사실상 사용하면 안된다.

2023년 4월 14일
·
0개의 댓글
·
post-thumbnail

[Effective Java] item8 - finalizer와 cleaner 사용을 피하라

자바를 처음 배울 때 들었던 말은 finalizer를 그냥 쓰지 말라는 말이었다. 근데 왜?라는 궁금증은 해결하지 못한 채 그냥 넘어갔는데 책에서 이렇게 소개해주니 너무나도 좋다. 그럼 시작해보겠다!자바에서는 두 가지 객체 소멸자가 존재하는데..

2023년 4월 13일
·
0개의 댓글
·