f_
frhyme.code
☕
기초 ~ 중급총 151개 아티클 수록

Java & 엔터프라이즈 객체지향 아키텍처

Java OOP, JVM & Database Engineering

객체지향 설계 원칙(SOLID), JVM 런타임 메모리 모델, 실전 디자인 패턴, 그리고 SQL/데이터베이스 인터랙션을 학습하여 견고하고 확장 가능한 소프트웨어를 작성하는 방법을 다룹니다.

정렬:
#01

Java: collections

java에서 는 유용한 method들이 모여 있는 library로 이해하시면 됩니다. 과는 다릅니다. 은 Interface를 말합니다.

•⏱ 약 5분 소요•
#java#programming#collectiond
읽어보기→
#02

매우 오랜만에 Java를 공부해보기로 합니다.

Intro - 나에게 Java는 매우 오랜만에 Java를 공부해볼 일이 생겼습니다. 뭐, 오랜만이기는 한데 필요하면 하는 거죠. Java는 2007년 자료구조라는 수업에서 처음 접했었습니다. 그 때 Eclipse라는 IDE로 개발을 했었는데, 저...

•⏱ 약 6분 소요•
#java#programming#intellij
읽어보기→
#03

Android와 Java는 도대체 무슨 관계인가?

Intro - Java와 Android는 무엇이 같고 다른가? 요즘에는 Java를 공부하고 있습니다. 사람마다 다르겠지만, 저는 새로운 언어를 공부하면 이 언어의 특성 혹은 역사에 대해서 어느 정도는 살펴보면서 진행을 하는 편이에요. 뭐, 딱히 ...

•⏱ 약 9분 소요•
#java#android#programming#google
읽어보기→
#04

IntelliJ를 설치하고 Java를 간단하게 공부해봅니다.

Install IntelliJ IntelliJ를 다운받아서 설치합니다. 참고로 말하면, 저는 맥을 사용하고 있습니다. 다운받고 설치하고 뭐 그런거는 보통 Next 버튼을 연타하면 되는 것이므로 넘어가겠습니다. 물론 고급 사용자의 경우 초기 설정을...

•⏱ 약 12분 소요•
#java#programming#intellij
읽어보기→
#05

Java: Scanner를 이용해서 기본적인 값 입력받기.

Java 기본 입력 - Scanner를 이용해서 값 입력받기 C에서는 사용자로부터 값을 입력받기 위하여 다음과 같은 코드를 사용합니다. 하지만 java에서는 객체를 만들어줍니다. 이 아이는 말 그대로 Stream을 읽어들이는 아이죠. Java 기...

•⏱ 약 2분 소요•
#java#programming#intellij#scanner
읽어보기→
#06

Java: 문자열에 변수를 넣어서 함께 출력

Java 기본 출력 이번에는 값을 출력할 때 변수와 함께 출력하는 방법을 알아보겠습니다. C에서는 다음과 같이 하고. python에서는 다음과 같이 하죠. java에서는 다음과 같이 합니다. 개념적으로 같은 코드이지만, 이해를 돕기 위해 다음처럼...

•⏱ 약 2분 소요•
#java#programming#intellij#string
읽어보기→
#07

Java: Char를 Int로 변환하기

Java - Char를 Int로 바꾸기 python에서는 만약 string, char등을 숫자로 바꾼다면, 다음처럼 하면 끝납니다. 우선 '문자열(String)'과 '문자(char)'간 차이도 없죠. java에서는 이런 방식의 형 변환이 되지 않...

•⏱ 약 1분 소요•
#java#programming#intellij#char
읽어보기→
#08

Java: 문자열 정수 index를 사용해서 접근

String access by index 가령, python에서는 문자열(String)의 정수 위치에 따라서 값을 접근할 때, 다음과 같이 합니다. 그런데, java에서는 String의 각 캐릭터에 접근하려면 이렇게 하면 안되고, 를 사용해야 합...

•⏱ 약 1분 소요•
#java#programming#intellij#string
읽어보기→
#09

Java: Array를 Reverse해보자

코딩을 하다 보면, list 혹은 array에 들어 있는 값들의 순서를 역순으로 변경하고 싶을 때가 있습니다. 가령 python에서는 다음과 같죠. 참 쉽죠? 물론, 그냥 코드 자체가 복잡하지 않아서, 그냥 다음처럼 짜버리면 되는 것이기는 합니다...

•⏱ 약 5분 소요•
#java#programming#array#list
읽어보기→
#11

Java: String을 Int로

java - char array를 String으로 를 사용해서 String을 Int로 변환할 수 있습니다.

•⏱ 약 1분 소요•
#java#string#int
읽어보기→
#12

Java: 길이를 모르는, 여러 값을 입력받기

Java - 값이 몇 개 들어올지 모를 때 java에서 Scanner를 사용해서 값을 읽을 때, 값이 몇 개 들어올지모를 때가 있습니다. 가령 다음처럼 어떤 경우에는 3개를 받고, 어떤 경우에는 4개를 받고 그럴 수 있는 것이죠. 이처럼 를 통해...

•⏱ 약 1분 소요•
#java#programming#scanner#input
읽어보기→
#13

Java: String 기본 method

Java - String java에서 String은 Immutable하고(값을 한번 정하고 나면 수정할 수 없고), primitive type이 아닙니다. 배정할 값이 없다면, 을 넣어줍니다. Immutable java에서 String은 Immu...

•⏱ 약 5분 소요•
#java#string#programming
읽어보기→
#14

왜 Java의 String은 Immutable하게 설계되었는가?

Java String is Immutable java에서 String은 Immutable합니다. 즉 한번 값을 지정했다면 그 값의 내부 원소를 수정할 수는 없다는 이야기죠. 물론, 아래처럼 변수에 들어 있는 값을 통째로 바꾸어주는 것이 가능하기는...

•⏱ 약 6분 소요•
#java#string
읽어보기→
#15

Java: Array의 모든 원소가 같은지 확인하기

Java의 두 Array의 모든 원소가 같은지 확인해봅시다 간단합니다. 두 Array , 가 있을 때 내부의 모든 원소가 같은지를 확인해봅시다. 첫번째로는 아래 코드와 같이 모든 원소를 다 확인해주는 방법이 있겠죠. 두번째로는 를 사용해서 한번에...

•⏱ 약 2분 소요•
#java#programming#array#equality
읽어보기→
#16

Java: 2진수, 8진수, 16진수

java에서 2진법, 8진법, 16진법 값 넣어주기 2진수는 값 앞에 를 넣어주고, 8진법은 , 16진법은 를 넣어주면 됩니다. 똑같은 것을, python에서는 다음과 같이 합니다.

•⏱ 약 1분 소요•
#java#programming
읽어보기→
#17

Java: Array의 크기를 변수로 정의해주는 것이 가능합니다.

Java에서는 변수로 Array의 크기를 잡아줄 수 있어요 가령, 사용자의 입력 값에 따라서, Array의 크기를 다르게 잡아줄 수 있도록 하려면, 중간에 사용자로부터 값을 전달받아야 합니다. 코드로 보면 대략 다음과 같죠. C의 경우 C로 코딩...

•⏱ 약 2분 소요•
#java#programming#array
읽어보기→
#18

Java: Array를 출력하기.

Java - Array를 어떻게 출력할 수 있나? 사실 아래 코드와 같이, 배열의 원소를 하나씩 출력하는 것은 어렵지 않습니다. 값을 하나씩 하나씩 출력하면 되죠. 그런데, 이 아이를 한번에 출력하면 어떻게 될까요? 가 나와야 할 거라고 생각했지...

•⏱ 약 4분 소요•
#java#programming#array
읽어보기→
#19

Java: Boolean 값과 int는 다르다.

Java - Boolean이과 int는 다르다 C로 코딩을 해본 적 있으신 분들은 아시겠지만, C에서는 , 의 값이 따로 존재하지 않습니다. 0이면 False, 1이면 True죠. 딱히 문제가 없다고 느낄 수도 있지만, Boolean은 logic...

•⏱ 약 2분 소요•
#java#programming#boolean#int
읽어보기→
#20

Java, javac, JVM

Java - compile and run 오늘은 java에서 프로그래밍 소스 코드를 만들고 그 소스 코드를 실제 프로그램으로 만들게 되는, 과정에 대해서 간략하게 정리해봅니다. 프로그램을 작성한다는 것 프로그래머는 그냥 소스 코드를 만듭니다. 이...

•⏱ 약 4분 소요•
#java#javac#jvm
읽어보기→
#21

Java: 가변 Argument 선언하고 사용하기

대부분의 함수는 정해진 수의 argument를 넘겨받습니다. 그리고 디자인 측면에서도, 이게 훨씬 좋은 설계방식이라고 생각하고요. 다만, 경우에 따라, argument의 수가 여러 개 들어오도록 설계할 때도 있죠. 가령 , 처럼, 2개의 합, 3...

•⏱ 약 2분 소요•
#java#programming#argument#array
읽어보기→
#22

JVM, JRE, JDK

JVM - Java Virtual Machine JVM은 "가상 컴퓨터"라고 생각하면 됩니다. Java Bytecode(java compiler가 java source code를 java byte code로 변환)를 실행해주는 프로그램이죠. JV...

•⏱ 약 1분 소요•
#java#programming#jvm#jre
읽어보기→
#23

Java: BigInteger - 큰 수 표현하기

Java - BigInteger Java에서 는 primitive type이며, 메모리에 주소를 저장하는 것이 아니라, 메모리에 값을 저장합니다. 는 4byte, 즉 32bit에 값이 저장되고 음수 표현을 위한 제일 앞 자리를 제외하면 31bit...

•⏱ 약 3분 소요•
#java#integer#programming
읽어보기→
#24

What is Scala?

Scala Scala는 Programming language입니다. Scala 또한 요즘 나오는 대부분의 Programming Language처럼 "General-purpose programming"라고 합니다만, 굳이 따지면 "함수형 프로그래밍...

•⏱ 약 3분 소요•
#scala#programming#java#functionalprogramming
읽어보기→
#26

Java: String - 값을 비교할 때는 equals method를 사용해야 함

두 변수를 비교할 때는 두 가지 방법이 있습니다. - : 두 변수의 주소 값이 같은지 확인하는 방법 - : 두 변수의 값이 같은지를 확인하는 방법. 읿반적으로 '객체'라면 기본 operator인 가 value check로 사용되는 것이 아니라, ...

•⏱ 약 1분 소요•
#java#string#equality#comparison
읽어보기→
#27

Java: StringBuilder 사용하기

Java - Mutable한 String 사용하기 Java에서 String은 Immutable합니다(물론 python에서도 String은 Immutable하죠). Immutable하다는 것은 한 번 값이 assignment되고 나면, 값이 바뀔 ...

•⏱ 약 4분 소요•
#java#programming#immutability#mutability
읽어보기→
#28

Java: Method Overridding, Field shadowing

Java - Method Overridding Method Overridding은 "기본 클래스(base class)에서 기정의된 method를, base class를 상속받는 derive class에서 새롭게 정의하여, 덮어씌워버리는 것"을 말...

•⏱ 약 5분 소요•
#java#overriding#inheritance#programming
읽어보기→
#29

Java: Infinity

Java의 실수형 자료형(, )에는 Infinity가 존재합니다. 막연히, "큰 수"가 아니라, double 내의 어떤 수와 비교해도 절대적으로 큰 수인 가 존재합니다. 그리고 음의 무한인, 또한 존재하죠. 정확한 이유는 모르겠지만, Int에는 ...

•⏱ 약 3분 소요•
#java#programming#infinity
읽어보기→
#30

Java: for each 문

java에서도 for each 문을 사용할 수 있습니다. 별 거 아니잖아? 라고 생각할 수 있지만, 이러한 for each 문은 다음과 같이 iterable한 경우에 좀 더 유용하게 사용할 수 있습니다. 위처럼 하지 않으려면 다음처럼 새로운 변수...

•⏱ 약 2분 소요•
#java#programming#loop
읽어보기→
#31

Java: Static variable, method

java - static 은 class instance에 종속되는 것이 아니라, class 자체에 종속되는 개념을 말합니다. 굳이 Instance를 만들지 않아도 접근할 수있는 아이를 말하죠. 가장 빈번하게 사용되는 경우는 아래 코드와 같이, 현...

•⏱ 약 3분 소요•
#java#programming#static
읽어보기→
#32

Java: Enum(열거형)

Java - enum Java의 enum(열거형)은 '기정의된 Instance'라고 생각하면 됩니다. 오히려, 예를 들면 이해가 쉬운데요. 간단히 아래처럼 java의 enum을 정의할 수 있죠. Complext Example like Class ...

•⏱ 약 9분 소요•
#java#programming#enum#enumeration
읽어보기→
#33

Java: 메모리를 어떻게 구분하고, 어떻게 관리하는가?

Java - 메모리 관리 컴퓨터 구조를 나누면, 연산은 CPU가 하고 CPU에서 연산을 처리하기 위해 값을 기억해두는 놈은 Memory라는 놈이 하죠. 일단은 그냥 그렇게 되어 있다, 라고만 해석해도 상관이 없기는 합니다. 하지만, 프로그래밍 언...

•⏱ 약 11분 소요•
#java#programming#jvm#stack
읽어보기→
#34

Java: Dynamic Array(동적배열)

왜 Dynamic Array가 필요한가? 일반적으로 Array를 사용할 때는 다음처럼 메모리의 크기를 처음에 잡아놓고 시작합니다. 다음의 코드에서는 3개의 크기의 메모리를 잡은 것이죠. 그 메모리에 우리는 3개의 int형 정수를 배치하여 사용할 ...

•⏱ 약 10분 소요•
#java#array#programming
읽어보기→
#35

Java: time package

time.LocalDate java에서 Data를 관리하기 위해서는 클래스를 사용합니다. - 나, 를 사용하여 LocalDate의 값을 초기화합니다. - 를 사용하여, 서로 다른 두 LocalDate가 동일한지 확인할 수 있습니다. - 날짜를 증...

•⏱ 약 7분 소요•
#java#programming#time
읽어보기→
#36

Java: 예외처리(try, catch, finally)

java - Simple exception Handling java에서 예외처리 하는 방법을 간단하게 다음과 같이 정리하였습니다. 기정의된 예외(Exception)들은 프로그래밍 과정에서 발생하고 그 예외상황을 처리하는 방식이 보통 다음과 같죠 ...

•⏱ 약 6분 소요•
#java#programming#exception#exceptionhandling
읽어보기→
#37

Java: Annotation

java에서 Annotation은 프로그램에 대한 정보가 담긴 "Comment"라고 생각해도 일단은 무방합니다. 하지만 그냥 유저만 보는 것을 목적으로 하는 게 아니라, 컴파일러 혹은 IDE, 프레임워크 들에게 정보를 전달하는 측면에서 Comme...

•⏱ 약 2분 소요•
#java#annotation#programming
읽어보기→
#39

Java: boxing and unboxing

Java에서 primitive type(, 등)은 모두 해당되는 class를 가지고 있습니다. 이런 클래스들을 모두 wrapper라고 부르죠. 그리고, wrapper는 기본적으로 immutable의 성질을 가지고 있습니다. 우선, primitiv...

•⏱ 약 3분 소요•
#java#boxing#class#unboxing
읽어보기→
#40

Java: Object Interning

Object Interning은 여러 개의 Object가 동일한 값을 가질 때, 하나의 메모리의 값을 공유하도록 함으로써, 메모리를 적게 사용하도록 하는 기법을 말합니다. 아래, 코드를 보면 서로 다른 두 객체인 와 이 같은 메모리 값을 가지고 ...

•⏱ 약 3분 소요•
#java#object#class#programming
읽어보기→
#41

Java: Polymorphism

polymorphism은 다음과 같은 다양한 종류로 나뉩니다. Ad-hoc polymorphism: 엄밀한 의미에서 polymorphism은 아니지만, 이 같고 가 다른 경우에 대해서 작동하는 것을 말하며, method overloading이 여...

•⏱ 약 3분 소요•
#java#oop#programming#object
읽어보기→
#42

Java: abstract class

필요에 따라서, 프로그램의 모든 class가 상속받는 baseClass를 정의할 때가 있습니다. 음, 이건 일종의 디자인 패턴인데요. 가령 RPG게임 같은 것에서 모든 캐릭터가 HP, MP를 가지고 또 비슷한 method 이름들을 가진다면 모든 ...

•⏱ 약 3분 소요•
#java#class#programming#abstract
읽어보기→
#43

Java: Object

Java에는 라고 하는 모든 Class의 BaseClass가 되는 Class가 존재합니다. 그냥 다음처럼 새로운 Class를 정의히면 자연스럽게 라는 클래스를 상속받게 되죠. 따라서 객체인 은 항위 class인 Integer 객체를 가리킬 수 있...

•⏱ 약 3분 소요•
#java#object#class#programming
읽어보기→
#44

Java: Overriding toString method

Java - Object - toString() Java에는 라고 하는 모든 Class의 BaseClass가 되는 Class가 존재합니다. 그리고 이라고 하는 method가 존재하죠. class를 다음과 같이 정의합니다. 아무것도 정의되어 있지 ...

•⏱ 약 2분 소요•
#java#programming#overriding#string
읽어보기→
#45

Java: Interface

C++을 공부해보신 적이 있으신 분들은 아시겠지만 보통 OOP에서는 Abstract class를 만들어 두고 이를 상속하도록 하는게 일반적이죠. Abstract Class에는 field와 Behaviour가 모두 정의됩니다. 하지만, "네가 누구...

•⏱ 약 2분 소요•
#java#programming#oop#interface
읽어보기→
#46

Java: Abstract Class vs. Interface

Abstract Class와 Interface는 "아직 구현되지 않은, 추상화된 클래스"를 의미합니다. 직접 Object로 구현되어질 수는 없고, 이후 얘네를 다른 Class가 상속받아서 virtual method들을 새롭게 정의해줘야 하죠. 이...

•⏱ 약 3분 소요•
#java#programming#class#interface
읽어보기→
#47

Java: JAR(Java ARchive)

What is JAR JAR은 Java ARchive의 약자이며, 관련있는 file들을 패키지로 묶은 파일포맷입니다. 일단은 그냥 'Java 라이브러리'라고 생각해도 됩니다. 다른 Java Application에서 JAR 파일을 읽어서 사용할 수...

•⏱ 약 1분 소요•
#java#programming#jar
읽어보기→
#48

Java: Design Pattern - Strategy

Strategy Pattern은 객체지향적 설계에서 가장 많이 사용되는 패턴이죠. 하나의 예를 들어 보겠습니다. 클래스 이 있을 때, 점간의 거리를 측정하는 클래스가 내부에 있겠죠. 거리 측정은 조금씩 다를 수 있는데, 필요에 따라 내부의 를 다...

•⏱ 약 3분 소요•
#designpattern#strategy#java#programming
읽어보기→
#49

Java: Design Pattern - Singleton

개발을 하다 보면 딱 하나의 Class Instance만 정의해서 사용해야 할 때가 있습니다. 이런 종류의 설계를 Singleton이라고 하죠. - Singleton은 딱 하나의 Class Instance만 생성하도록 제한됩니다. - 그리고 어플...

•⏱ 약 4분 소요•
#designpattern#singleton#java#programming
읽어보기→
#50

JVM - Garbage Collector

C나 C++에서는 직접 를 통해 메모리를 직접 해제해야 하지만, JVM에서는 Garbage Collector가 직접 알아서 메모리를 해제해줍니다. Java에서는 JVM의 heap memory에 에 의해 생성되는 Object를 올려서 관리합니다. ...

•⏱ 약 2분 소요•
#java#programming#jvm
읽어보기→
#51

Java: Generic Programming

Generic Programming은 변수의 타입과 상관없이 프로그래밍할 수 있도록 하는 것을 말합니다. 아주 간단하게 '정렬'을 예로 들자면, 변수타입이 Int이든, Double이든, String이든 간에, 비교 연산자만 제대로 설정되어 있다면...

•⏱ 약 3분 소요•
#java#programming#genericprogramming
읽어보기→
#52

Java: JVM, Class, Bytecode

Java Virtual Machine(JVM) JVM은 컴파일된 자바 프로그램을 실행하는 가상환경을 말합니다. JVM은 컴퓨터의 OS위에서 돌아가고, Java Program은 JVM 위에서 돌아가죠. JVM은 여러 종류가 있고 대부분 JVM Sp...

•⏱ 약 4분 소요•
#java#jvm#class#bytecode
읽어보기→
#53

Java: Collections

Java에서 기본으로 제공하는 Array의 경우 사용할 수 있는 Array의 크기가 고정되어 있죠. 그런데 실제 상황에서는 필요에 따라 Array의 크기가 추가로 더 필요할 때가 있죠. 물론, 어려운 코드는 아닙니다. 더 큰 크기의 New Arr...

•⏱ 약 3분 소요•
#java#programming#collections#genericprogramming
읽어보기→
#54

Java: Generic Programming vs Object

프로그래밍할 때, 타입을 고정하지 않고 Class를 추상화하여 표현할 수 있죠. 이게 불가능하다면 알고리즘의 작동방식이 동일하더라도 Integer, String등 각각의 데이터 타입에 따라서 여러 Class를 정의해두어야 합니다. 단지 데이터 타...

•⏱ 약 6분 소요•
#java#programming#genericprogramming
읽어보기→
#55

Java: Collection Interface

Java에서는 미리 다양한 자료구조에 대한 Interface를 설계 해두었습니다. 관리의 용이성 혹은 method명을 표준화시켜 관리하는 것이 목적이겠죠. : 동일한 type의 object들을 모아두는 container입니다. , , , , 는 ...

•⏱ 약 4분 소요•
#java#programming#collections#interface
읽어보기→
#56

Java: Explicit type arguments can be replaced by Diamond Operator?

Java에서 Collection을 사용하다 보변 다음과 같은 Warning 메세지가 뜰 때가 있습니다. 뒤쪽의 를 지워버리면 Warning이 발생하지 않죠. 물론 그대로 사용해도 문제는 없습니다만. 이 을 Diamond Operator라고 부르죠...

•⏱ 약 2분 소요•
#java#programming
읽어보기→
#57

Java: Collection - List Interface

List Interface 밑에는 와 가 있습니다. 이 둘에 대한 설명은 굳이 하지 않겠습니다. 이 둘은 기본적으로 mutable입니다. 그리고 를 사용해서 List를 생성하는 경우 immutableList가 생성됩니다.

•⏱ 약 2분 소요•
#java#programming#interface#collection
읽어보기→
#58

Java: Inner Class

Inner Class(내부 클래스)는 클래스 안에 클래스가 또 있는 겁니다. 클래스 안에 Object(Class Instance)가 있는게 아니라, Class 안에서 새로운 Class를 정의하는 것을 말합니다. 대략 다음과 같은 형태로 정의하는 ...

•⏱ 약 6분 소요•
#java#programming#class
읽어보기→
#59

Java: Inner Class에서 Outer Class 접근하기

Class 안에 InnerClass를 만들었습니다. 그리고 InnerClass의 method인 에서 OuterClass의 field인 과 InnerClass의 field인 을 모두 출력하죠. OuterClass의 field인 이 private이지...

•⏱ 약 7분 소요•
#java#programming#class#shadowing
읽어보기→
#60

Java: Anonymous Class

python에서 필요에 따라 anonymous function을 정의해서 임시적으로 사용하는 것처럼, Java에서도 Anonymous Class 혹은 Anonymous Interface를 재정의해서 사용할 수 있습니다. 필요에 따라, 특정 met...

•⏱ 약 4분 소요•
#java#class#oop
읽어보기→
#61

Java: Runtime Type Checking

Java를 포함한 OOP 언어들에서는 BaseClass(혹은 Interface)의 reference Variable을 사용해서 DerivedClass의 Class Instance를 가리키게 할 수 있습니다. 대략 다음과 같죠. "왜 이런짓을 해야...

•⏱ 약 4분 소요•
#java#programming#class#oop
읽어보기→
#62

Java: Collection - Set Interface

는 우리가 흔히 아는 '집합'을 말하는 것이죠. 이 자료 구조 내부에는 중복값이 존재할 수 없습니다. 가령 Array, List등에서는 1을 원소로 넣고, 또 넣을 수 있는 반면, Set에서는 이게 안되요. 그럼 List가 더 좋은 것 아니냐? ...

•⏱ 약 9분 소요•
#java#programming#interface#collection
읽어보기→
#63

Java: Map Interface

Java - Map Map은 로 구성하는 자료구조입니다. python의 dictionary와 비슷하죠. Map Interface의 구현체로는, , , 이 있죠. 의 경우 HashTable에 의해서 관리되기 때문에, , 메소드를 사용할 때, con...

•⏱ 약 4분 소요•
#java#programming#interface#collection
읽어보기→
#64

Java: Collection - Queue, Deque

Queue는 우리가 일상에서 흔히 보는 "대기열"이라고 생각하시면 됩니다. 줄이 있으면 보통 맨 뒤에 줄을 서고 가장 먼저 온 사람이 먼저 줄에서 나가게 되죠. 일상 생활에서 가장 많은 형태의 자료구조이며, 이런 행동 패턴을 "먼저 온 사람이 먼...

•⏱ 약 5분 소요•
#java#programming#interface#collection
읽어보기→
#65

Java: Iterable, Iterator, ListIterator

Java - Iterable Java에서 for-each loop 혹은 forEach method를 사용하려면, 자료 구조의 요소들을 순회(Iterate)해야 합니다. 순차적으로 원소에 접근하는 것이 가능할 경우, "for-each loop이 사...

•⏱ 약 4분 소요•
#java#programming#interface#collection
읽어보기→
#66

Java: Functional Programming - Lambda Expression

Java는 OOP, 객체지향 언어입니다. OOP 자체가 꽤나 올드한 패러다임이기는 하고 저도 오랫동안 "그거 옛날 패러다임이잖아?"라면서 무시했던 일들도 있는데, 장난감 레벨에서 뭔가를 만드는 것이 아니라, 거대한 시스템을 만들어야 하는 상황에서...

•⏱ 약 8분 소요•
#java#programming#lambda#function
읽어보기→
#67

Java: Method Reference

Java에는 이미 수많은 Class들과 Method들이 있습니다. Java에서 Function을 이용해서 프로그래밍을 한다고 할때, Class 혹은 Object의 Method들을 가져와서 동일한 기능을 가지는 함수로 사용할 수 있다면, 좀 더 유...

•⏱ 약 4분 소요•
#java#programming#method#class
읽어보기→
#68

Java: Function Composition

Java에서 Function들은 , 라는 두 메소드를 가지고 있는데, 이 메소드를 사용해서 새로운 함수를 만들어낼 수 있습니다. 다만, 적용 순서가 조금 다릅니다. - : g(f(x)) - : f(g(x))

•⏱ 약 1분 소요•
#java#programming#function
읽어보기→
#69

Java: Simple Currying and example

Java - Currying Currying은 개의 인자를 받는 함수로부터 의 인자의 값을 고정한 새로운 함수를 만들어내는 것을 말합니다. Java - Currying Example Java에서도 를 사용해서 currying을 수행할 수 있습니다...

•⏱ 약 2분 소요•
#java#programming#function#interface
읽어보기→
#70

Java: Standard Functional Interface

직접 interface와 Annotation을 사용하여 Function을 정의하고 구현하여 사용할 수 있으나, 귀찮으므로 웬만하면 이미 Java에서 구현되어 패키지에 있는 놈들을 사용하기로 합니다. Java에는 다음과 같은 5 종류의 Functi...

•⏱ 약 5분 소요•
#java#programming#function#interface
읽어보기→
#71

Java: Functional Interface

Java - Function 이전에 우리는 Method Reference 방식을 이용해서 라는 타입의 변수에 함수를 넣어주었습니다. 그런데, 만들어진 함수를 보면 실행할 때 로 실행하는 것이 아니라, 로 실행합니다. 마치 우리가 늘 쓰던 의 방식...

•⏱ 약 8분 소요•
#java#programming#function#interface
읽어보기→
#72

Java: Optional

다음처럼 Object에 Null이 assign되어 있는 경우에는 이 발생합니다. 물론 다음처럼 인지 체크하는 코드를 넣으면 더 좋기는 한데, 코드가 좀 지저분해지죠. 따라서, 클래스가 등장하게 됩니다. 물론 이 클래스에도 값을 대입할 수는 있기는...

•⏱ 약 6분 소요•
#java#programming#optional#npe
읽어보기→
#73

Java: Functional Stream - Basic

Java에서 List와 같이 연속된 값들을 처리할 때는 두 가지 방식이 있습니다. 문을 사용하는 방법과, 을 통해 method를 chaining해 가면서 쓰는 방법이 있죠. 에 집어넣어서 처리해줘도 되는데, 이렇게 할 경우 한 번 읽어들인 다음,...

•⏱ 약 9분 소요•
#java#programming#stream#list
읽어보기→
#74

Java: Functional Stream - Without flatMap

은 와 2차원으로 되어 있는 List를 1차원 List로 변형해줄 때 쓰입니다. 말 그대로, 평평하게 해주는 애들이죠. 가령 를 로 바꿔준다. 물론, 을 쓰면 되는 건데, 이걸 안 쓰고 다른 방법으로 과 비슷하게 코딩할 수는 없는지 고민했고, 그...

•⏱ 약 4분 소요•
#java#programming#stream#functionalprogramming
읽어보기→
#75

Java: Functional Stream - map, flatMap

은 list의 요소들을 각각 정의된 function대로 변경해주는 것을 말합니다. 가령 이라는 리스트가 있을 때 얘를 모두 square로 변경하고 싶다면 다음처럼 하면 되죠. Java - Functional Stream - flatMap 은 Li...

•⏱ 약 3분 소요•
#java#programming#stream#functionalprogramming
읽어보기→
#76

Java: functional stream - reduce

Java - reduce 는 list 내의 원소들에 대해서 binary 연산은 순차적으로 수행하도록 해주는 것을 말하죠.

•⏱ 약 1분 소요•
#java#programming#optional#reduce
읽어보기→
#77

Java: Optional.orElse

java에서 은 "메서드의 반환 값이 '없음'을 의미적으로 표현할 필요가 있지만, null값으로 반환하고 싶지는 않은 경우"에 사용하기 위해서 만들어졌습니다. 이상하죠. 실제로 null은 아니지만, 의미적으로 아무 것도 반환되지 않았다! 라는 것...

•⏱ 약 1분 소요•
#java#programming#optional#npe
읽어보기→
#78

Java: Primitive Stream

보통 는 , , 과 같은 reference type등을 담습니다. 가끔 int, double 등을 사용해서 프로그램을 짜다가, 으로 변경하고 싶은 경우에는 각각 Integer, Double으로 변형해서 처리해줘도 됩니다만, 아무래도 좀 비효율적이...

•⏱ 약 2분 소요•
#java#programming#primitive#stream
읽어보기→
#80

Java: Stream - infinite Stream

Java - infinite Stream - generate, iterate 의 경우 전달받은 에 따라 무한히 값을 생성해내는 stream입니다. 의 경우 seed로부터 출발해서, 를 적용하여 순차적으로 값을 넣어주죠. 그냥 무한 등차수열 같은 ...

•⏱ 약 3분 소요•
#java#programming#stream
읽어보기→
#81

Java: Stream - Parallel Stream

말 그대로 stream을 병렬로 수행해주는 아이를 말하는데, 어렵지 않고 그냥 Stream에서 를 호출한 다음 그냥 죽 이어서 하면 됩니다. 보통은 그냥 로 생각하고 진행하게 되죠. 아래에서는 간단히, 1부터 1000000000(billion)까...

•⏱ 약 5분 소요•
#java#programming#stream#parallel
읽어보기→
#82

Java: Array to Stream

Array를 Stream으로 변경하려면, 을 사용하면 됩니다. 가령 Scanner를 사용해서 입력받은 String을 split하여 바로 Stream으로 처리하려면 다음처럼 하면 되죠.

•⏱ 약 1분 소요•
#java#programming#stream#array
읽어보기→
#83

Java: Stream - IntStream vs. IntegerStream

다음과 같은 간단한 코드가 있습니다. 간단히, 의 요소들의 합을 모두 게산해주는 코드죠. 코드에 오류가 없을까요? 위 코드를 실제로 실행해 보면 다음과 같은 오류가 생깁니다. 에 가 존재하지 않는다는 이야기죠. 사람은 가 정수로 구성되어 있으니,...

•⏱ 약 4분 소요•
#java#stream#intstream#programming
읽어보기→
#84

Java: stream - IntStream to List

아래 코드를 봅시다. 에 대해서 간단한 를 처리하고 를 통해 List로 변환해서 넘겨주는 것이죠. 언뜻 보기에는 잘 되는 것처럼 보이지만, 그렇지 않습니다. 다음과 같은 오류 메세지가 뜹니다. 의 는 3가지 타입의 argument를 필요로 하는데...

•⏱ 약 7분 소요•
#java#programming#stream#intstream
읽어보기→
#85

Java: Read and Write File

java에서 File을 읽거나 혹은 쓰는 방법을 정리합니다. java.io.File java에서 을 읽거나 쓰려면, class를 사용하면 됩니다. File을 읽은 다음에 간단한 meta 정보를 알고 싶다면 다음의 method들을 사용해서 처리할 ...

•⏱ 약 5분 소요•
#java#programming#file#stream
읽어보기→
#86

Java: Read File by Scanner

흔히 시스템 입출력()에서 사용하는 에 을 넘겨서 사용할 수도 있습니다. 에는 다음과 같이 데이터가 담겨 있다고 하고요. 아래 코드에서처럼 을 에 넘겨주면. 결과가 잘 나옵니다.

•⏱ 약 1분 소요•
#java#programming#file#scanner
읽어보기→
#87

DuckTyping - Example with python

Duck Typing "어떤 것이 오리(Duck)인지는 그의 행동을 통해 판단해야 한다"라는 개념이 바로 Duck Typing입니다. 달리 말하면, "처음부터 Type이 정해진 것이 아니라, "오리로서 갖춰야 하는 method들이 구현되어 있으면...

•⏱ 약 7분 소요•
#python#oop#ducktyping#programming
읽어보기→
#90

Java: stream - Collectors.groupingBy

은 stream의 각 요소에 을 적용하고 적용 결과를 key에 원소를 value에 넣어서 Map으로 리턴하는 방법을 말합니다. 또한 모아진 애들별로 operation을 추가로 적용할 수도 있습니다.

•⏱ 약 4분 소요•
#java#programming#stream#collectors
읽어보기→
#92

Gradle - Build Tool

Build Tool 일반적으로 build tool은 "소스코드들을 실행가능한 어플리케이션으로 자동으로 변환해주는 도구"라고 생각하시면 됩니다. 원래의 소스 코드들을 모두 텍스트로 되어 있는데, 이를 컴파일하고, 다른 코드들에 흩어져 있는 패키지들...

•⏱ 약 7분 소요•
#build#gradle#java#maven
읽어보기→
#93

Java: interface - default method

interface에서는 method를 선언만 할 수 있고 정의할 수는 없지만, 를 사용하면 정의할 수도 있습니다. Wrap-up interface의 모든 구현체에 동일하게 포함되는 method임에도, interface에서는 method를 정의할 ...

•⏱ 약 2분 소요•
#java#programming#class#oop
읽어보기→
#94

Java: Check class A is subClass of class B

java에서 class instance a가 class B의 instance인지 확인하려면 보통 를 사용합니다. 의 경우 runtime 시에 발생하는 type checking이며, 아래와 같이, 사용할 수 있습니다. 그러나, 의 경우 앞서 말한 ...

•⏱ 약 4분 소요•
#java#programming#class#oop
읽어보기→
#95

Java: Covariant Return Type

Covariant Return Type은 "함께 변하는 Return Type"이라고 해석할 수 있습니다. 기존의 java에서는 subClass에서 Method Overriding이 발생할 때, superClass에서의 Method와 Return ...

•⏱ 약 1분 소요•
#java#programming#class#oop
읽어보기→
#96

Java: Generic Programming - Type Bound

Type Bound는 Generic Programming을 사용할 때, "특정 타입을 상속받는 객체"만 허용되도록 제한하는 것을 말합니다. 다음 코드에서 는 type parameter인 TS가 "List를 상속받는다"라는 것을 의미하죠. List...

•⏱ 약 4분 소요•
#java#programming#genericprogramming#typebound
읽어보기→
#97

Java: Generic Programming - Wild Card

Java에서 Abstract Class인 는 에게 상속됩니다. 따라서, 아래와 같이, 변수가 객체를 가리킬 수 있죠. 그렇다면, 변수로 Instance를 가리키는 것 또한 가능할까요? 아래 코드를 실행해 보면 그렇지 않은 것을 알 수 있습니다. ...

•⏱ 약 5분 소요•
#java#programming#genericprogramming#wildcard
읽어보기→
#98

Java 자료구조: Double Linked List

Java에서 Linked List를 만들었습니다. Node for DoubleLinkedList 우선 를 아래와 같이 설계했습니다. 얘를 외부에 따로 만들어줘도 문제가 없기는 한데, 저는 내에 으로 만들 겁니다. Java - DoubleLinke...

•⏱ 약 11분 소요•
#java#datastructure#programming#list
읽어보기→
#99

Java 자료구조: Tree

java를 사용해서 tree를 만들어봤습니다. childNode의 개수에는 제한이 없고, 다음 method를 구현하였습니다. - : 자식 Node를 집어넣는다. - : Node가 존재하는지 찾는다. - : tree의 길이를 계산한다. - : tr...

•⏱ 약 5분 소요•
#java#datastructure#programming#list
읽어보기→
#101

Java 자료구조: Binary Search Tree

Java에서 Binary Search Tree를 구현했습니다. 가 꽤나 어려웠는데, 지워야 하는 node의 자식 노드가 2개인지 1개인지(왼쪽인지, 오른쪽인지) 없는지에 따라서 과정이 조금씩 달라집니다. 뿐만 아니라, 이 때, 지운 다음 pare...

•⏱ 약 8분 소요•
#java#datastructure#programming#list
읽어보기→
#102

Java 자료구조: Binary Heap

Java로 Binary Heap을 구현했습니다. Binary Heap은 다음 조건을 만족하는 자료 구조를 말하죠. Heap은 작을수록 우선순위를 가지는 MinHeap과, 클수록 우선순위를 가지는 MaxHeap으로 나뉘는데, 여기서는 MinHeap...

•⏱ 약 12분 소요•
#java#datastructure#programming#list
읽어보기→
#103

Java: Regular Expression - Basic

정규표현식은 "특정한 패턴을 사용해서 문자를 검색하는 방식"이죠. Java에는 String에서 정규표현식(Regular Expression)을 기본적으로 지원합니다. 다음과 같이 아주 간단하게 pattern을 찾는 방법을 정리하였습니다. - : ...

•⏱ 약 3분 소요•
#java#programming#string#regex
읽어보기→
#104

Java: Regular Expression - Set, Range, Except

Regex를 사용하여 유효한 문자들에 대해서 범위를 지정하는 방법을 정리합니다. - : 유효한 문자 그룹을 지정합니다. - ex) : a, b, c 유효 - : 를 사용하여 유효한 문자들을 범위로 지정합니다. 1부터 9까지 허용 - : 를 사용하...

•⏱ 약 5분 소요•
#java#programming#string#regex
읽어보기→
#105

Java: Regular Expression - Shorthand

Regex를 만들 때 가령 숫자만 포함되어야 하는 경우 처럼 정할 수도 있지만, 와 같이 더 짧게 처리할 수 있는 방법도 있습니다. 그리고 대문자는 을 의미하죠. 그리고, 정규표현식을 만들 때는 를 1개 쓰는게 아니라 를 써야 인식됩니다. - :...

•⏱ 약 5분 소요•
#java#programming#string#regex
읽어보기→
#107

Java: Regex - Conditional

Regex에서도 문자열의 패턴에 따라 if statement를 구성할 수 있습니다. 아래 코드에서는 일반적인 시간 표시()과 같은 시간만 유효하도록 판단하는 regex를 만들었습니다.

•⏱ 약 3분 소요•
#java#regex#condition#programming
읽어보기→
#108

Java: Class - nested Class

당연하지만, java의 class 내에도 class를 정의할 수 있습니다. static nested class, local inner class로 정의할 수 있죠. - static nested class - local inner class Jav...

•⏱ 약 3분 소요•
#java#programming#class#oop
읽어보기→
#109

Java: Regex - Pattern, Matcher

사실 이미 java에서 을 사용해서도 regex를 사용할 수 있긴합니다. 그러나, 의미적으로 다음과 동일하죠. 매번 String에서 를 호출하는 순간 매번 를 사용해서 String을 compile하죠. 만약, 해당 pattern이 여러 번 사용된...

•⏱ 약 5분 소요•
#java#regex#programming#string
읽어보기→
#111

Java: Double Brace Initialization

Java에는 Double Brace Initialization이라는 것이 있습니다. 가령 HashMap을 만들고 그 즉시 값도 집어넣고 싶을 때, Double Brace Initialization을 사용할 수 있죠. 아래 코드에서 보시면 사이에서...

•⏱ 약 3분 소요•
#java#programming#class#hashmap
읽어보기→
#112

Java: Regex - Matcher Class

Java에서 , 를 사용해서, String 내에 존재하는 pattern은 순차적으로 찾고 출력하는 방법을 정리하였습니다.

•⏱ 약 3분 소요•
#java#regex#programming#string
읽어보기→
#113

Java: Reflection - Basic

Java의 Relfection은 Runtime시에 객체로부터 클래스의 정보를 가져오는 것을 말합니다. 일반적으로는 다음과 같이 class instance를 만든 다음에는 내부 메소드에 직접 접근해서 변수를 처리하거나 해주죠. 하지만, Runtim...

•⏱ 약 6분 소요•
#java#reflection#class#programming
읽어보기→
#115

Java: Reflection - Modifier

class 내 field, method등의 Modifier(, 등)을 확인하는 방법을 정리하였습니다. 는 다음과 같은 field를 가지고 있습니다. 이때, 각 field의 Modifier를 확인하는 방법을 정리하였습니다. 그리고, 이 글에서는 f...

•⏱ 약 3분 소요•
#java#reflection#class#programming
읽어보기→
#116

Java: MultiThreading - Thread Basic

Java - MultiThreading - Threads java는 기본적으로 JVM 레벨에서 Multi Thread를 지원합니다. 사실 우리가 이라는 이름으로 돌리는 코드가 이미 JVM에서 알아서 인식해서 만들어내는 Thread인 거죠. 물론 ...

•⏱ 약 3분 소요•
#java#thread#programming#parallelism
읽어보기→
#117

Java: MultiThreading - Make Thread

이제 직접 Thread를 만들어보겠습니다. Thread를 만드는데는 다음과 같은 두 가지 방법이 있습니다. 둘다 내부에서 을 Override 해줘야 하는 것은 동일하죠. 1. Thread를 extends하여 새로운 Thread를 만들기 2. Ru...

•⏱ 약 9분 소요•
#java#thread#programming#parallelism
읽어보기→
#118

Java: MultiThreading - Thread in Thread

Thread 안에 Thread가 있는 경우를 한번 만들어보도록 하겠습니다. 는 다음과 같이 구성하였습니다. - 는 Thread가 생성되기 전이므로 가장 먼저 출력되겠죠. - Thread는 해당 Thread의 subThread보다는 무조건 먼저 출...

•⏱ 약 3분 소요•
#java#thread#programming#parallelism
읽어보기→
#119

Java Thread: Sleep, Join

, 를 사용해서 현재 Thread를 일정 시간 정지시켜 둘 수 있습니다. 결과를 보면 다음처럼 일정 시간동안 멈췄다가 실행되는 것을 알 수 있습니다. Java - Thread - Join 에서 를 실행하면, threadB가 종료될때까지, 의 실행...

•⏱ 약 7분 소요•
#java#thread#programming#parallelism
읽어보기→
#120

Java Thread: Thread 간 데이터 불일치, volatile

Java - Thread - Thread 간 데이터 불일치 다음과 같은 ThreadA가 있다고 합시다. ThreadA를 실행하면, 부터 3개를 집어넣고 그 결과를 출력합니다. 아래 main thread에서는 를 2개 만들었습니다. 그릐고 둘다 해...

•⏱ 약 4분 소요•
#java#thread#programming#parallelism
읽어보기→
#121

Java Thread: Thread Synchronization

Java에서 Thread 간 동기화(Synchronization)을 하는 방법을 정리합니다. 1. : Thread들에 DB, variable, object, file 와 같은 shared resource에 접근하는 코드를 말합니다. 이 부분은 동...

•⏱ 약 8분 소요•
#java#thread#programming#parallelism
읽어보기→
#122

Java Thread: Interruption

실행되고 있는 Thread를 를 사용해서 종료시킬 수 있습니다. 단, 이때 Thread가 이나, 를 실행하고 있는 상황이어야 하죠. 다음처럼 를 사용해서 Thread를 종료시킬 수 있습니다. Java - interruption - isInterr...

•⏱ 약 4분 소요•
#java#thread#programming#parallelism
읽어보기→
#123

Java: Counting Sort

CountingSort는 현재 array 내에 존재하는 원소의 빈도를 활용하여 sorting하는 방식을 말합니다. '빈도'를 고려하는 것처럼, 원소들이 중복되어 있을 수록 효율적이죠. 보통의 알고리즘들은 모든 원소들간의 값을 비교하여 정렬하는 반...

•⏱ 약 12분 소요•
#sort#java#programming#sorting
읽어보기→
#124

Java: Arbitrary Number of Argument

java에서 method를 정의할 때, 변수가 몇 개 들어오더라도 문제없이 처리해주도록 하려면 을 이용하면 됩니다. 가령 다음처럼 로 정의할 경우 String argument가 몇 개 들어올지 정해주지 않아도 됩니다. 즉, 1개 들어오든 2개 들...

•⏱ 약 2분 소요•
#java#java_basic#argument#function
읽어보기→
#125

Java Thread: State of Thread

Thread 또한 life cycle을 가지며 state가 변하죠. 프로그래머가 Interruption 등으로 Thread의 state를 변경하는 경우도 있고, OS로 인해 바뀌는 경우도 있습니다. Thread의 상태는 enum type인 으로 ...

•⏱ 약 4분 소요•
#java#thread#programming#parallelism
읽어보기→
#126

Java Thread: Executors

Thread가 몇 개 되지 않을때는 관리가 어렵지 않지만, 가령 100개가 넘어간다면 관리가 배우 어려워지죠. Java의 는 multi-thread를 효과적으로 관리할 수 있도록 해줍니다. Task Queue를 만들어, 실행되어야 하는 Task를...

•⏱ 약 3분 소요•
#java#thread#programming#parallelism
읽어보기→
#128

Scala - Install scala

그냥 를 사용해서 설치하면 됩니다. scala을 설치하고 난 다음 terminal에 를 치면 다음처럼 REPL로 scala를 실행할 수 있습니다. Run Scala in Intellij IntelliJ에서 scala를 실행하기 위해서, scala...

•⏱ 약 3분 소요•
#scala#programming#install#brew
읽어보기→
#129

Scala - Function

간단히 다음처럼 라는 function을 만들었습니다. 특이한 것이 java에는 이 따로 없습니다. 의 형태로 input type, output type을 뒤쪽에 과 함께 작성해줍니다. 그냥 다음처럼 한줄로 만들어서 처리할 수도 있죠. 여러 arg...

•⏱ 약 1분 소요•
#scala#programming#function
읽어보기→
#130

Scala - Collection

scala의 collection, Array, List, Set, Map에 대해서 간단하게 정리하였습니다.

•⏱ 약 1분 소요•
#scala#programming#collection
읽어보기→
#131

Scala - tuple

scala의 tuple을 이용하여 간단한 코드를 만들어 봤습니다. scala의 tuple은 ...로 각 요소에 접근하고, 최대 22개만 만들 수 있습니다.

•⏱ 약 1분 소요•
#scala#programming#tuple
읽어보기→
#132

Gradle - Basic

spring initializer에서 config을 설정하고 다운받습니다. 압축을 풀고 나서 해당 경로에서 다음 명령어를 실행해 주면 해당 경로에 필요한 plungin을 모두 설치해주고 build를 해줍니다. intelliJ의 경우는 그냥 해당 ...

•⏱ 약 9분 소요•
#build#gradle#java#maven
읽어보기→
#134

Java: Logging - Logger

Java - Logging Logger는 일반적으로 시스템 상에서 발생하는 상황을 확인하기 위한 도구죠. 사실 그냥 을 사용해서 처리하는 일이 많기는 한데, 이렇게 할 경우 나중에 한번에 해제한다거나 하는 일이 어려워집니다. 가령, 여러 함수에 ...

•⏱ 약 7분 소요•
#java#programming#logging#logger
읽어보기→
#135

Java: Serialization

Serialization은 Object를 json, xml과 같은 binary data format으로 변환하는 것을 말하고, 반대로 json, xml로부터 Object로 변경하는 것을 Deserialization이라고 합니다. Student.j...

•⏱ 약 6분 소요•
#java#programming#serialization#serializable
읽어보기→
#136

Kotlin - Basic

Kotlin에 대한 사소한 것들 심심해서 코틀린을 공부하고 있는데 다른 언어들과의 차이점이라거나 하는 것들을 정리합니다. Varaible - val, var : immutable variable을 의미합니다. : mutable variable C...

•⏱ 약 4분 소요•
#kotlin#programming
읽어보기→
#137

Kotlin - function

Kotlin에서는 function 또한, Object로 사용되며 변수가 가리키도록 할 수도 있고, 함수에 넘겨주고 다시 함수에서 넘겨받는 것도 가능합니다. 보통 이런 걸, first-class citizen이라고 하는데, 뭐 그냥 "함수도 변수처...

•⏱ 약 3분 소요•
#kotlin#function
읽어보기→
#138

Kotlin - Range

kotlin에서 Range를 정의하는 방법은 대략 다음과 같습니다.

•⏱ 약 1분 소요•
#kotlin#range#for#programming
읽어보기→
#139

Kotlin - class

kotlin에서 class를 정의하는 방법을 정리하였습니다. - kotlin에서는 Constructor를 내부 method로 정의하는 것이 아니라, 부분에 값을 넣어서 넘겨줍니다. - 내부에 block으로 만들어 줄 수도 있긴 하죠. - meth...

•⏱ 약 2분 소요•
#kotlin#programming#class
읽어보기→
#140

Kotlin - When statement

kotlin에서 은 와 유사한 형태의 명령문입니다. 의 경우 하나의 조건에 대해서만 일일이 matching할 수 있었떤 반면, 은 여러 조건을 동시에 한 줄에 작성할 수 있습니다. 우리가 흔히 아는 switch문과 유사하게는 다음처럼 작성할 수 ...

•⏱ 약 2분 소요•
#kotlin#programming#when
읽어보기→
#141

Kotlin - Array

array는 다음처럼 정의할 수 있습니다. Array Method - contentEquals 를 사용하여 array의 내부 원소들이 동일한지 비교할 수 있습니다. Array Method - joinToString 를 사용하면, String Ar...

•⏱ 약 3분 소요•
#kotlin#programming#array
읽어보기→
#143

Kotlin - Regex

kotlin으로 regex를 다음처럼 사용할 수 있습니다.

•⏱ 약 1분 소요•
#kotlin#programming#regex
읽어보기→
#144

Javascript - Promises

Promises는 "약속"을 의미하죠. 동일하게 javascript에서의 Promises 또한, "미래에 어떤 이벤트가 발생한다면, 무엇이 실행된다(혹은 실행되지 않는다)"를 정의하는 것을 말하죠. "미래를 가정한다"라고 말할 수도 있겠네요. 가...

•⏱ 약 1분 소요•
#java
읽어보기→
#145

Error와 Exception의 차이는 무엇일까요?

Error(에러)와 Exception(예외)의 차이는 무엇일까요? 물론, 현실 생활에서는 '에러'와 '예외'를 구분하지 않고 쓰기도 합니다만, 엄밀히 따지면 둘은 다릅니다. - "Error"의 경우는 "현재 프로그램이 인지하지 못하는 심각한 문제...

•⏱ 약 1분 소요•
#java#programming#exception#error
읽어보기→
#146

Java: Design Pattern - Factory Pattern

Design Pattern - Factory 지금까지는 늘 operator를 사용하여 Class Instance를 생성해 왔습니다. 이것도 딱히 틀린 방법이 아니기는 하지만, 관련된 코드를 좀 더 합쳐버리는 방법(Encapsulation)이 있죠...

•⏱ 약 2분 소요•
#designpattern#factory#java#programming
읽어보기→
#147

Java: Exception class

Java - Exception Java는 객체 지향 언어입니다. 즉 모든 것이 객체로 받아들여진다는 것이며, "예외(exception)" 또한 객체로 인식됩니다. 그리고 이 객체들은 hierarchy(계층 구조)가 있습니다. 모든 예외의 기본이 ...

•⏱ 약 4분 소요•
#java#programming#exception
읽어보기→
#148

Java: Invoking base constructor from derived class

Base Class와 Derived Class가 있을 때 내부에서 constructor를 구성하는 방법은 다음과 같은 두 가지가 있습니다. 첫번째로는 다음처럼 를 통해 BaseClass의 Constructor를 직접 호출하는 방법이 있구요. 단,...

•⏱ 약 3분 소요•
#java#programming#function Object() { [native code] }#inheritance
읽어보기→
#149

Java: JDBC

일단 에 아래를 sqlite를 등록해줍니다.

•⏱ 약 1분 소요•
#java#jdbc#database#sqlite
읽어보기→
#150

Sorting(정렬) 알고리즘의 주요 특성

Sorting 알고리즘 개발시에는 무엇을 주로 고려해야 하는가? Time Efficiency: 얼마나 빠른 시간 내에 정렬을 수행할 수 있는가? Stablility: 가령 와 같은 리스트가 있다고 하면, 정렬한 뒤에도 이 두 값의 위치가 변하지 ...

•⏱ 약 2분 소요•
#java#algorithm#sorting
읽어보기→
#151

Spring Framework and Spring Boot

Spring Framework는 자바 진영에서 가장 인기있는 어플리케이션 개발 프레임워크입니다. 하지만 Spring Batch처럼 Spring Framework를 사용해서 만들어진 새로운 Framework도 있기 때문에, 오히려 스프링은 단순한 ...

•⏱ 약 2분 소요•
#java#spring#programming#framework
읽어보기→