분류 전체보기

· Common Sense
인증Authentication인증은 시스템 사용자의 신원을 확인하는 과정사용자가 자신이 누구인지를 증명하는 단계인증을 통해 시스템은 사용자가 주장하는 신원이 실제로 그 사용자와 일치하는지 검증방법사용자 이름과 비밀번호지문얼굴 인식스마트 카드OTP 등예시웹사이트 로그인 시 사용자 이름과 비밀번호 입력, 스마트폰에서 지문 인식 또는 얼굴 인식 사용 등인가Authorization인증된 사용자가 특정 자원에 접근할 권한이 있는지를 결정하는 과정방법접근 제어 리스트(ACL)역할 기반 접근 제어(RBAC)정책 기반 접근 제어예시특정 사용자가 파일을 읽을 수 있는지, 쓰기 권한이 있는지 확인관리자가 아닌 사용자는 설정을 변경할 수 없도록 제한인증과 인가의 차이점 요약순서인증이 먼저 이루어진 후에 인가가 진행역할인증은..
· Question
상황SpringBoot 3, JPA통계 엔티티들은 데이터 객체에 가까우므로 불변 객체로 만듬@Getter @Entity @NoArgsConstructor @AllArgsConstructor @Builder @EqualsAndHashCode public class Statistics implements Persistable { @EmbeddedId private DataDate dataDate; @Embedded private EventCount eventCount; @Embedded private OsCount osCount; @Transient @Builder.Default private boolean isNew =..
· ISSUE
발생 상황SpringBoot 3, JPA통계 프로젝트 진행 중 특정 일자에 저장, 그리고 특정 일자를 조회 하기에 인덱스를 사용하기 위해서 복합키를 사용하기로 함.@NoArgsConstructor @AllArgsConstructor @Embeddable public class DataDate implements Serializable { private LocalDate startDate; private LocalDate endDate; private int weekNumber; }@Getter @Entity @NoArgsConstructor @AllArgsConstructor @Builder @EqualsAndHashCode public class Statis..
· Common Sense
메서드를 호출할 때 파라미터를 전달하는 두 가지 방법Call By Value메서드를 호출할 때 값을 넘겨줌Pass By Value메서드를 호출하는 호출자의 변수와 호출 당하는 수신자의 파라미터는 복사된 서로 다른 변수값만 전달하기 때문에 수신자의 파라미터를 수정해도 호출자의 변수에는 아무런 영향이 없음Call By Reference메서드를 호출할 때 참조(주소)를 직접 전달Pass By Reference참조를 직접 넘기기 때문에 호출자의 변수와 수신자의 파라미터는 완전히 동일한 변수메서드 내에서 파라미터를 수정하면 그대로 원본 변수에도 반영됨Java 에서의 파라미터 전달 방법Java는 Call By Value로만 동작함JVM 메모리에 변수가 저장되는 위치Java 에서는 변수를 선언하면 Stack 영역에 ..
· Java
프로그램을 개발 하다 보면 유효하지 않은 메모리인 가비지(Garbage)가 발생한다.C 언어를 이용하면 free() 라는 함수를 사용해서 직접 메모리를 해제해주어야 함JVM의 가비지 컬렉터가 불필요한 메모리를 알아서 정리함null 선언은 함Minor GC와 Major GCJVM의 Heap 영역은 처음 설계될 때 2 가지를 전제로 설계됨대부분의 객체는 금방 접근 불가능한 상태가 된다오랟된 객체에서 새로운 객체로의 참조는 아주 적게 존재한다즉 객체는 대부분 일회성이며, 메모리에 오랫동안 남아있는 경우는 드물다는 것객체의 생존 기간에 따라 물리적인 Heap 영역을 나누게 되었고 Young, Old 2가지 영역으로 설계됨Young 영역새롭게 생성된 객체가 할당되는 영역(Allocation)대부분의 객체가 금방 ..
📌 브릿지 패턴(Bridge Pattern)이란? 구현과 추상화를 분리하여 각각 독립적으로 확장, 변형할 수 있게 하는 패턴이다. 추상적 개념과 구체적 구현을 서로 다른 두 개의 인터페이스로 구현한다. 특히 인터페이스와 구현을 분리함으로써 시스템의 유연성을 향상시킬 수 있다. 예를 들어 Circle(원) 및 Square(정사각형)라는 한 쌍의 자식 클래스들이 있는 Shape(모양) 클래스가 있다고 가정했을 때, 이 클래스의 계층 구조를 확장하여 색상을 도입하기 위해 Red, Blue 모양들을 자식 클래스에 만든다고 한다면 BlueCircle, RedSquare 등 새로운 모양 유형들과 색상 유형들을 추가할 때마다 계층 구조는 기하급수적으로 늘어난다. 위의 예시에서는 모양과 색상 두 가지 독립적인 차원에서..
📌 어댑터 패턴(Adapter Pattern)이란? 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 동작하도록 해주는 패턴이다. 기존에 있는 시스템에 새로운 써드파티 라이브러리가 추가된다던지, 레거시 인터페이스를 새로운 인터페이스로 교체하는 경우에 코드의 재사용성을 높일 수 있는 패턴이다. 해외여행을 다닐 때 각 국가의 표준전압이 달라 충전기 앞에 흔히 말하는 돼지코(110V 변환)를 사용한 경험이 있을 것이다. 이는 220V를 사용하는 대한민국 충전기의 인터페이스를 외국의 표준전압으로 변환하여 작동시키게끔 하는 어댑터이다. 즉, 어댑터란 이미 구축되어 있는 것을 새로운 어떤 것에 사용할 때 양 쪽 간의 호환성을 유지해 주기 위해 사용하는 것으로 기존 시스템에서 새로운 업체에서 제공..
📌 구조 패턴(Structural Pattern) 이란? 클래스나 객체를 조합하여 더 큰 구조를 만드는 패턴이다. 클래스와 객체 간의 관계를 강화하거나 변경하고, 더 큰 구조를 통해 시스템의 유연성화 효율성을 증가시키는 데 사용된다. 주로 상속이나 인터페이스를 활용하여 객체들 간의 관계를 조직화한다. 📌 구조 패턴의 특징 서로 독립적으로 개발한 클래스 라이브러리를 마치 하나인 것처럼 사용할 수 있다. 여러 인터페이스를 합성하여 서로 다른 인터페이스들의 통일된 추상을 제공한다. 인터페이스나 구현을 복합하는 것이 아니라 객체를 합성하는 방법을 제공한다. 📌 구조 패턴의 종류 [ 어댑터 패턴 (Adapter Pattern) ] 인터페이스가 호환되지 않는 클래스들을 함께 이용할 수 있도록 타 클래스의 인터페이스..
개발의 밀도
'분류 전체보기' 카테고리의 글 목록 (3 Page)