일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Spring
- 인접행렬
- nestjs
- 자료구조
- bean
- 프로그래머스
- node.js
- OOP
- Linux
- java
- LifeCycle
- 탐욕법
- REST API
- winston
- 코딩테스트
- 알고리즘
- html
- 인접리스트
- puppeteer
- javascript
- TIL
- css
- JWT
- dfs
- GraphQL
- Kubernetes
- typescript
- MySQL
- Interceptor
- Deep Dive
- Today
- Total
목록Language (57)
처음부터 차근차근
날짜와 시간 라이브러리가 필요한 이유우리가 프로그래밍을 하면서, 로그를 남기거나, 혹은 회원 생성 시간 및 게시글 생성 시간 등 날짜와 시간에 대한 기록이 필요하다.단순히 날짜와 시간만 기록하면 되는게 아닌가? 싶지만, 날짜와 시간을 계산하는 것은 의외로 복잡하다.날짜와 시간 차이 계산윤년 계산일광 절약 시간 변환타임존 계산이를 위해서 Java에서는 라이브러리를 제공하고 있다.Java 날짜와 시간 라이브러리*: 초는 나노초 단위의 정밀도로 캡처된다. (밀리초, 나노초 가능)**: 이 클래스는 이 정보를 저장하지는 않지만 이러한 단위로 시간을 제공하는 메서드가 있다.***: ZonedDateTime 에 Period 를 추가하면 서머타임 또는 기타 현지 시간 차이를 준수한다.LocalDate, LocalTi..
Enum Typeenum은 Enumeration의 줄임말로, 번역하면 열겨라는 뜻이다.enum은 일련의 명명된 상수들의 집합을 정의하는 것을 의미하며, 프로그래밍에서는 이러한 상수들을 사용하여 코드 내에서 미리 정의된 값들의 집합을 나타낸다.Enum은 왜 만들어졌을까??Enum은 타입 안전 열거형 패턴(Type-Safe Enum Pattern)으로부터 만들어졌다.간단한 예시로, 특정 문자열을 사용해서 회원을 구분하는 경우, 아래와 같은 문제점이 발생할 수 있다.문자열은 오타가 발생하기 쉽고, 유효하지 않은 값이 입력될 수 있다."Gold", "gold" 등 다양한 형식으로 문자열을 입력할 수 있다.이러한 문제를 해결하기 위해 특정 범위로 값을 제한할려고 하였으며, 나열한 항목만 사용할 수 있도록 아래 예..
Wrapper Class란??Wrapper Class란 기본형을 객체로 감싸서 더 편리하게 사용하도록 도와주는 클래스이다. 즉, 기본형의 객체 버전이다.실제 현업에서도 기본형보다는 래퍼 클래스를 많이 사용한다.byte -> Byteshort-> Shortint -> Integerlong -> Longfloat -> Floatdouble -> Doublechar -> Characterboolean -> Boolean기본 래퍼 클래스는 다음과 같은 특징을 가지고 있다.불변이다equals로 비교해야 한다.간단한 예시를 통해 사용해보자.package lang.wrapper;public class WrapperClassMain { public static void main(String[] args) { ..
String 클래스란??자바에서 문자를 대표적인 타입은 char, String 2가지가 존재한다.기본형인 char 는 문자 하나를 다룰 때 사용한다. char 를 사용해서 여러 문자를 나열하려면 char[] 을 사용해야 한다. 하지만 이렇게 char[] 을 직접 다루는 방법은 매우 불편하기 때문에 자바는 문자열을 매우 편리하게 다룰 수 있는String 클래스를 제공한다.String 클래스를 통해 문자열을 생성하는 방법은 2가지이다.package lang.string;public class StringBasicMain { public static void main(String[] args) { String str1 = "hello"; String str2 = new Strin..
기본형과 참조형의 공유자바의 데이터 타입을 가장 크게 보면 기본형과 참조형이 있다.기본형 : 하나의 값을 여러 변수에서 절대 공유하지 않는다.참조형 : 하나의 객체를 참조값(주소)을 통해 여러 변수에서 공유할 수 있다.참조형을 자세히 살펴보면x라는 객체를 a와 b에서 참조하고 있다.이때 x의 속성 하나를 변경한다면, a와 b 둘 다 속성이 변하는 것을 알 수 있다.이는 추가적인 부수 효과를 가져온다.사이트 이펙트 를 가지고 오는데, 특정 부분에서 발생한 변경이 의도치 않게 다른 부분에 영향을 미치는 경우라고 생각하면 편하다.이런 경우를 막아야 하는데, 방법으로는a와 b가 처음부터 다른 인스턴스를 참조하면 된다.그러나, 이것은 근본적으로 참조값을 공유하는 방법을 막을 수 없다.불변 객체지금까지 발생한 문제..
java.lang 패키지란?자바에서 기본으로 제공하는 패키지로써, 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지입니다.Object : 모든 자바 객체의 부모 클래스String : 문자열Integer, Long, Double : 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것Class : 클래스 메타 정보System : 시스템과 관련된 기본 기능들을 제공이 패키지는 모든 자바 애플리케이션에 자동으로 임포트 됩니다.Object 클래스자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object 클래스입니다. 이것은 묵시적으로 상속 받기 때문에, 따로 extend를 사용하지 않아도 자동으로 상속을 받습니다.클래스에 상속 받을 부모 클래스를 명시적으로 지정하면 Object를 상속받지 않지만,..
Typescript Class와 Javascript Class의 차이점 Javascript에는 접근 제어자가 없습니다. But 최신 브라우저와 최신 Node.js(버전 12 이상)에서는 지원합니다. Javascript에는 추상 클래스가 없습니다. Javascript에는 인터페이스가 없습니다. 따라서 다중 구현이 불가능합니다. Typescript에서는 이 부분이 보완되어 조금 더 강력하게 객체 지향 코드를 구현할 수 있게 되었습니다. Class 속성 접근 제어자 public : 클래스 외부에서 접근 가능 (기본 값으로 생략 가능합니다.) private : 해당 클래스 내부에서만 접근 가능합니다. protected : Book 클래스를 포함한 서브(자식) 클래스에서만 접근 가능합니다. class Book {..
Interface란? interface는 일종의 추상클래스입니다. 추상메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않습니다. 추상클래스를 '미완성 설계도'라고 한다면, 인터페이스는 밑그림만 그려져 있는 '기본 설계도'라고 할 수 있습니다. interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수 목록); } 순스 추상 클래스의 특징을 모두 가집니다. 인스턴스 생성 불가 상속 시 모든 메서드를 오버라이딩 해야 한다. 주로 다형성을 위해 사용된다. 인터페이스에도 클래스처럼 접근제어자로 public 또는 default만 사용할 수 있다. 모든 메서드는 public abstract이어야 하며..
추상이란?? 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용. 즉, 추상화란 '형상을 뽑아내어 변화시키는 것'이라고 정의할 수 있습니다. 고양이, 강아지, 소에서 추상을 하면 동물, 포유류 등을 추상화 할 수 있습니다. 쉽게 말하자면 '일반화' 같은 것입니다. 추상 클래스 클래스를 설계도에 비유한다면, 추상 클래스는 미완성 설계도라고 비유할 수 있습니다. 추상 클래스는 이름 그대로 추상적인 개념을 제공하는 클래스입니다. 따라서 실체인 인스턴스가 존재하지 않습니다. 대신에, 상속을 목적으로 사용되고 부모 클래스 역할을 맡는 중요한 의미를 갖습니다. abstract class AbstractAnimal {...} 추상 클래스는 클래스를 선언할 때 앞에 추상이라는 의미의 ab..
객체 지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 존재합니다. 좋은 개발자가 되기 위해서는 다형성에 대한 이해가 필수입니다. 다형성(Polymorphism)이란? "다양한 형태", "여러 형태", 즉, 여러 가지 형태를 가질 수 있는 능력을 의미 프로그래밍에서 다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻합니다. 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현했습니다. 다형성을 이해하기 위해서는 크게 2가지 핵심 이론을 알아야 합니다. 다형적 참조 메서드 오버라이딩 다형적 참조 다형적 참조를 이해하기 위해 간단한 상속 관계 코드를 만들어보겠습니다. package poly.basic; public class P..