분류 전체보기 85

Kotlin Default Argument 의 동작 원리

Kotlin Default Argument의 동작 원리 Default Arguments 함수를 호출할 때 명시적으로 인자(Argument) 지정할 필요가 없는 것을 Default Argument라고 한다. 인자를 전달하지 않고 함수를 호출하면 Default Argument가 Function Parameter로 사용된다. 다른 경우에는 함수 호출 중에 argument가 전달되면 전달된 argument가 Function Parameter로 사용된다. Function의 매개 변수는 해당 인자를 건너뛸 때 사용되는 기본 값을 가질 수 있다. 이것은 오버로딩의 수를 줄여준다. ex) fun method(arg1: Int) { /*...*/ } fun method(arg1: Int, arg2: Int) { /*....

Kotlin/개념 2023.01.01

Java 8 ZonedDateTime vs OffsetDateTime 어떤 상황에서 쓰는게 적합한가?

Java 8 ZonedDateTime vs OffsetDateTime 어떤 상황에서 쓰는게 적합한가? 들어가기 전에 본 글은 회사 팀 내 세션 공유용 자료이며 이전 글 내용과 이어집니다. OffsetDateTime OffsetDateTime은 (LocalDateTime(날짜 + 시간) + ZoneOffset) 을 포함한다 Instant와 같이 나노초 정밀도로 타임라인에 순간을 저장한다 UTC/그리니치에서 오프셋을 추가하면 현지 날짜-시간을 얻을 수 있다. 데이터베이스에 Timestamp를 저장하거나 네트워크를 통해 XML 문서에 Timestamp 를 통신하는 데 사용하는 것이 유리하다고 한다. ZoneOffset UTC 기준 시간을 표현한 것 우리나라 Timezone(Asia/Seoul) 기준 UTC +..

Java/개념 2022.08.19

Java 8 LocalDateTime vs Instant 어떤 상황에서 쓰는게 적합한가?

Java 8 LocalDateTime vs Instant 어떤 상황에서 쓰는게 적합한가? 들어가기 전에 본 글은 세션 공유용 자료이며 LocalDateTime, Instant 의 개념에 관한 짧은 글이 아니므로 양해 부탁드립니다. 포스팅 계기 최근 새 회사(이커머스 도메인)에 이직하게 되었고 코프링(코틀린 + 스프링)기반 프로젝트를 진행하고 있었다. 프로젝트를 살펴보던 중 시간 관련 데이터들을 DB에 LocalDateTime 로 넣고 있었다. Instant 클래스가 아닌 LocalDateTime로 넣는 이유가 궁금해서 팀 내에 공유할 겸 오랜만에 포스팅하게 되었다. 그냥 LocalDateTime 쓰면 안되나요? 독자들은 LocalDateTime 이나 Instant 아무거나 쓰면 안 되나? 이런 궁금증이 ..

Java/개념 2022.08.09

DynamoDB 장단점과 DynamoDB를 시작 전에 알면 좋은 11가지

DynamoDB 장단점과 DynamoDB를 시작 전에 알면 좋은 11가지 앞서 포스팅 한 것에 이어 해당 포스팅도 사내에서 발표했던 내용을 정리하여 포스팅 한 것입니다. DynamoDB 장단점 장점 데이터가 key-value 형태로 저장된다. JSON file로 저장되는 개념이라 사용하기 간편하다. key-value 형태 이므로 READ 속도가 빠르다. (10ms 이하의 읽기 및 쓰기 성능) 확장성이 좋다.(수평적. 초당 수천 건의 요청 처리 가능) 속성에 대한 추가와 변경이 자유롭다. 완전 관리형 서비스이므로 운영 부담이 발생하지 않는다. 요청 수에 따라 원활하게 확장되기 때문에 비용 효율적이고 IO 작업을 원활하게 지원한다. 성능과 가용성을 위해 데이터를 3곳의 가용 영역에 복제하여 저장하고 있다. ..

Database/기타 2021.11.27

RDBMS의 한계와 NoSQL을 사용하는 이유 (3) NoSQL 장단점, 특징

DB RDBMS의 한계와 NoSQL을 사용하는 이유 (3) NoSQL 장단점, 특징 NoSQL(Not Only SQL, 비-관계형 데이터베이스) RDBMS의 복잡도와 용량 한계를 극복하기 위한 목적으로 등장했다. 정해진 스키마가 없어 자유롭게 데이터를 저장할 수 있다. 특징 유연성 : 스키마 선언 없이 필드의 추가 및 삭제가 자유로운 Schema-less 구조 확장성 : 스케일 아웃에 의한 서버 확장이 용이 고성능 : 대용량 데이터를 처리하는 성능이 뛰어나다 가용성 : 여러 대의 백업 서버 구성이 가능하여 장애 발생 시에도 무중단 서비스가 가능 기대하는 특징 높은 확장성 점진적으로 노드를 추가할 수 있어야 하고 이는 파티셔닝을 통해서 가능하다 높은 가용성 실패의 단일 포인트가 없고 데이터는 복제되기 때문..

Database/기타 2021.11.27

RDBMS의 한계와 NoSQL을 사용하는 이유 (2) RDBMS의 한계, 트랜잭션

DB RDBMS의 한계와 NoSQL을 사용하는 이유 (2) RDBMS의 한계, 트랜잭션 RDBMS(Relational DataBase Management System, 관계형 데이터베이스) 관계형 데이터 모델은 데이터 간의 상관 관계에서 개체간의 관계를 2차원의 테이블 형태로 표현 목표 RDBMS의 가장 큰 목표는 데이터 무결성을 높이는 것이다. 무결성의 종류 엔터티 무결성(Entity Integrity) = 개체 무결성 모든 인스턴스는 고유한 값(=같은 값 존재 X)이거나, 널(Null) 값을 가지면 안 됨 참조 무결성(Referential Integrity) 참조되는 엔터티의 주 식별자 값과 일치(=참조하는 기본키 값 중에 하나와 일치)하거나, 널(Null) 값이어야 함. 참조 무결성은 FK(Fore..

Database/기타 2021.11.27

RDBMS의 한계와 NoSQL을 사용하는 이유 (1) CAP, PACELC 이론

DB RDBMS의 한계와 NoSQL을 사용하는 이유 (1) CAP, PACELC 이론 사내에서 발표 했던 내용을 정리하여 포스팅 한 것입니다. CAP 이론 분산 컴퓨팅 환경은 일관성(Consistency), 가용성(Availability), 분할 내성(Partitioning) 세 가지 특징을 가지고 있다, 이중 두 가지만 만족할 수 있다는 이론이다. NoSQL은 대부분 이 CAP 이론을 따른다. 일관성 (Consistency) 모든 노드들이 동일 시간 동일 데이터를 사용자에게 보여줘야 하는 것 ACID 의 'C'는 데이터는 항상 일관성 있는 상태를 유지해야 하고 데이터의 조작 후에도 무결성을 해치지 말아야 한다는 속성이다. 쓰기 동작이 완료된 후 발생하는 읽기 동작은 마지막으로 쓰여진 데이터를 리턴 해야..

Database/기타 2021.11.27

DB에 기본값을 줄지 Server단에서 기본값을 줄지?

보시기 전에 프로젝트 설계할 때 고민했던 것을 한번 올려본다 DB에 기본값을 줄지 entity에 기본값을 줄지? DB에서 테이블을 생성할 때 DEFAULT 값을 지정해서 하는 방법과 entity에서 기본값을 지정하여 QUERY에 입력하는 방법 두가지가 있었는데 이 둘 중 무엇이 더 나은지에 대해 고민을 하다가 찾아보았다 찾아보기 전에 생각해본것 애플리케이션에서 LocalDateTime.now() 와 쿼리 입력될때 now() 의 시간이 다르다 default를 entity에서 지정해놨는데 코드를 누군가가 수정을해서 default값이 수정되거나 없어진다 default 값이 바뀌었을때 스키마에서는 안바꿔주고 코드에서만 바뀌게 되면 어떻게 될지? 기본값을 계산해서 입력하는 방식과 계산하지 않고 입력하였을때 애플리..

프로젝트/기타 2021.04.30

Java online LiveStudy 후기

Java online LiveStudy 후기 설명 라이브 스터디 유튜브로 진행하는 라이브 스터디 운영 프로젝트입니다. 이슈 게시판에 과제를 올리고 댓글로 과제 풀이 링크를 제출하시면 검토해 드리고 라이브 방송으로 피드백을 드립니다. 현재, 자바 기초 스터디를 진행중입니다. LiveStudy Link 자바 기초 스터디 수료 기준 및 선물 전체 18주 과정의 스터디로, 스터디 과제 제출율 80%를 넘긴 참여자에게 수료 기념으로 티셔츠를 선물해 드립니다. 참고 자료 책, 블로그, 인터넷 강의 뭐든지 참고해도 좋습니다. 저는 개인적으로 Java in a Nutshell을 참고하고 있습니다. Java in a Nutshell을 구하고 싶은 분들은 지난 2020년 11월 13일 자바 뉴스에서 소개한 헙블 북 번들에..

스터디/LiveStudy 2021.03.01