JavaScript Object과 Map의 공통점과 차이 JavaScript의 Map과 Object는 Key-Value 쌍으로 동작한다는 점에서는 비슷하지만 다른 점이 많다. 공부하면서 이 부분이 많이 헷갈려서 이번 글에서는 이 둘의 차이가 무엇인지에 대해 다뤄보고 어떤 때 Object를 써야 하고 어떤 때 Map을 써야하는지 살펴보고자 한다. Object과 Map의 공통점 Map과 Object의 값에 접근하기 위한 시간 복잡도 먼저 내가 제일 궁금했던 점은 Map과 Object의 값에 접근하기 위해서는 Key를 사용해야 하는데 이때 시간 복잡도가 다른가 하는 점이었다. 알아본 결과 N개의 원소가 있는 Map과 Object의 값의 접근을 위한 시간 복잡도는 O(1)로 같다. 물론 해싱 값이 모두 같은 값..
object
GraphQL의 fragment 앞선 글들에서 사용되었던 방법으로는 GraphQL의 특정 블록들을 여러 번 재사용해야 하는 블록의 경우 매번 중복해서 써야한다. 예를 들어 다음 두개 Query들이 있다고 해보자. query QueryFilm1 { film(filmID: 1) { title director producers } } query QueryFilm2 { film(filmID: 2) { title director producers } } 위 쿼리들에서는 title, director, producers들이 중복해서 사용된다. 이 필드들을 하나로 묶어 하나의 필드처럼 쓸 수 있다면 중복을 줄일 수 있을 것이다. GraphQL의 fragment가 바로 이 역할을 한다. GraphQL의 fragment는..
개발을 하다보면 객체에 대한 하나의 인스턴스만 필요할 때, 하나의 인스턴스를 재사용하기 위해 싱글톤 패턴을 구현해야 할 일이 생긴다. *싱글톤 패턴 : 객체의 인스턴스를 1개만 생성하여 계속 재사용 하는 패턴 Java에서의 싱글톤 기존 자바에서는 싱글톤 패턴을 구현하기 위해 많은 코드를 작성해야 했다. 보통은 다음과 같은 방식으로 싱글톤 패턴을 구현하였다. public class SingletonClass { // 1. static으로 선언된 객체를 담는 변수(instance) private static SingletonClass instance; public String sampleString = "Sample String"; // 싱글톤에 집중하기 위해 public으로 설정 private Single..
sealed class의 등장 배경 여러 자식 Class들이 하나의 부모 Class를 상속 받았다고 했을 때 컴파일러는 부모 Class를 상속 받은 자식 Class들이 있는지 알지 못한다. 예를 들어보자. 우리가 사용자의 런닝 운동을 기록해주는 앱을 만들고 있다. 이때 우리는 사람의 상태를 클래스로 만들고자 한다. 상태의 종류는 3가지로 뛰는 상태(Running), 걷는 상태(Walking), 쉬는 상태(Idle)가 있다. 이는 다음과 같이 코드로 만들어질 수 있다. abstract class PersonState class Running : PersonState() class Walking : PersonState() class Idle : PersonState() 코드1. class 상속 예제 각 P..