목차 순서대로 배우는 건 능률이 좋게 느껴지지 않아서, 알고리즘 풀이로 정방향으로 배우는 동시에 잘 짜인 코드를 바탕으로 리버스 엔지니어링(?)으로 배우기로 했다. 일종의 어깨너머 배우는 느낌인데, 뭐 하여간 그렇다. 오늘 새로 배운 키워드는 제목에 쓰여있듯이 async, promise, await, then, process이다. 가능하면 예를 하나씩 들어가며 정리하도록 하자. async 'async' 키워드는 이름에서 추측할 수 있듯이, 비동기 함수를 선언할 때 사용한다. 해당 키워드가 붙은 함수는 암묵적으로 'promise'를 반환하게 된다. async function doSomething() { // ... Promise 반환 } Promise Promise는 자바스크립트에서 비동기 작업의 완료 여..
[WebFlux]자주 사용하는 연산자 정리(1) [WebFlux]자주 사용하는 연산자 정리(2) - buffer [WebFlux]자주 사용하는 연산자 정리(3), 그리고 목차 WebFlux Operators [WebFlux]자주 사용하는 연산자 정리(1) [WebFlux]자주 사용하는 연산자 정리(2) - buffer [WebFlux]자주 사용하는 연산자 정리(3), 그리고 글의 순서는 연산자의 중요도나 로직의 흐름과는 아무 관련이 없다. 그저 내가 코드를 읽다가 마주친 순서를 마구잡이로 적어놓은 메모장에 근거할 뿐. 글 제목에 '+'가 붙어있는 이유는 연산자가 아니더라도 처음 봤거나 알아야 할 것 같은 경우라 판단이 들면 이 글에 같이 추가해 버렸기 때문이다. 굳이 연산자와 그 외 클래스를 나누어야 할..
Criteria는 직역하면 '기준'정도 되는 뜻으로, 리액티브 몽고 디비에서 쿼리 작성에 사용하는 클래스이다. 굉장히 다양한 메서드를 제공하며, 이를 이용하고 조합해 복잡한 Query, 혹은 Update 객체를 만들 수 있다. 이 글에서는 자주 쓰이는 메서드에 대해 짧게 정리하고 넘어가자. is(): '=='를 사용하여 해당 필드와 일치하는 값을 조회 ne(): '!='를 사용하여 일치하지 않는 값을 조회 lt(): ''사용 gte(): '>=' 사용 in(): 해당 필드 값이 리스트, 배열 중 하나와 일치하는 값 조회 nin(): 주어진 값 중 어떤 것도 포함하지 않는 값 조회 regex(): 정규표현식을 사용해 일치하는 값 조회 elemMatch(): 배열이나 리스트의 요소 중 하나가 해당 조건에 일..
[WebFlux]자주 사용하는 연산자 정리(2) - buffer [WebFlux]자주 사용하는 연산자 정리(3), 그리고 [WebFlux]자주 사용하는 연산자 정리(4) + 목차 Method vs. Operator 별생각 없이 메서드나 연산자라는 단어를 마구 뒤섞어 쓰다가 의문이 들었다. 같은 뜻의 단어를 두 개나 사용할 필요가 있을까? 하고. 해서 연산자 정리도 할 겸 아주 얕게 알아보았는데, 결론부터 말하면 둘은 다른 개념이지만 아주 남남은 아니다. 요약하면 아래와 같다. 메서드(Method) - 클래스나 객체 내부에 정의된 함수. Mono와 Flux 역시 내부에 많은 메서드를 가지고 있음 연산자(Operator) - 실제 연산에서 사용되는 메서드. 스트림의 데이터 처리를 연산이라고 부르기 때문에 붙..
목차 Before Init: Function vs. Method 결론부터 말하면 둘은 위와 같은 관계이다. 나도 아직 조금 헷갈리는데, 한 마디로 구분하자면 클래스 내에 선언된 함수를 메서드라고 부르는듯하다. 그 말은 뒤집어 말하면 파이썬의 함수는 자바와는 다르게 클래스 없이 독립적으로 선언할 수 있다는 말이 되며, 실제로 어제 작은 기능을 하나 구현해 보면서 느껴보기도 했다. 클래스에 소속되어 있는가의 유무에 따라 사용 코드에도 아래와 같은 차이가 발생하며, print() # 함수 a.create() # 메서드 따지고 들자면 메서드도 함수이기 때문에 그냥 함수라 지칭해도 틀린 표현은 아니게 된다. 그럼 본론으로 들어가자. Python Functions Creating 파이썬의 함수 정의는 매우 쉽고 간..
목차 지난 한 주간은 백준에서 집합과 관련된 문제를 주로 풀었다. 그러면서 해시 셋과 트리 셋의 특성에 대해 전보다 익숙해진 느낌이 들어 든든한 느낌도 든다. 어쨌거나 집합과 맵에 대한 문제를 풀어본 김에, 자바 컬렉션 프레임워크에서 제공하는 집합과 관련된 메서드를 정리하고 가면 좋겠다는 생각이 들었다. 대단히 어려운 내용은 없지만, 그림과 함께 하나씩 정리하자. 먼저, 아래와 같은 셋 두 개를 준비한다. public class example { public static void main(String[] args) { Set treeSet = new TreeSet(List.of(1, 2, 3, 4, 5)); Set hashSet = new HashSet(List.of(4, 5, 6, 7, 8)); } }..
지난 글에 적었듯이 레디스는 다양한 자료형을 지원한다. 해서 조금씩 공부하면서 현재 진행 중인 프로젝트의 캐싱이나 채팅방, 인증번호 저장 등을 모조리 레디스를 사용하도록 교체할 꿈을 꾸고 있는데, 바로 적용하려니 기본 연산이 잘 들어오지 않아 힘들었다. 따라서 이번 글은 레디스에서 지원하는 자료형의 연산과 기본 명령어 등을 연습하려고 한다. 먼저 스프링부트 프로젝트를 하나 생성해서 내장 레디스를 사용하기 위한 의존성을 추가한다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'it.ozimov:embedded-redis:0.7.2' } 나머지 의존성은 필요에 따라 추가하면 되겠다...
자바에서 생성자는 클래스의 네 가지 구성요소(필드, 메서드, 생성자, 내부 클래스)중 하나이며 메서드와 비슷한 코드 블럭, 혹은 특별한 메서드이다. 위 문장은 메서드를 어떻게 정의하느냐에 따라 달라지는 미묘한 의미를 가졌지만, 어쨌거나 중요한 것은 생성자 역시 메서드, 혹은 그에 준하는 코드 블럭이라는 것이다. 생성자는 매개변수의 유무에 따라 기본 생성자(Default or no-arg Constructor) - 매개변수가 없는 생성자 매개변수가 있는 생성자(Parameterized Constructor) 로 나뉘며 일반적인 메서드와는 다른 생성자만의 특징은 아래와 같은 것들이 있다. 클래스의 멤버(Member)가 아니므로 상속 및 오버 라이딩의 대상이 되지 않는다. 생성자의 이름은 반드시 클래스의 이름..
Class 클래스는 객체 자체가 아닌 객체를 생성하기 위한 틀이자 설계도이다. 기본적으로 class 키워드를 이용해 아래와 같이 정의하며, public class Car{ int doors = 4; // (1)필드 void stop {...} // (2)메서드 Car {...} // (3)생성자 class Car2 {...} // (4)내부 클래스 } 필드, 메서드, 생성자, 내부 클래스의 구성요소 중 생성자를 제외한 세 가지를 클래스(혹은 생성된 객체)의 멤버라 부른다. 각 구성요소의 특징은 아래와 같다. 필드 - 클래스(객체)의 속성을 나타내는 변수. 차의 모델명, 색깔, 문의 개수 등이 있다. 메서드 - 클래스(객체)의 기능을 나타내는 함수. 가속하기, 멈추기 등이 있다. 생성자 - 클래스의 객체를..
HTTP(HyperText Transfer Protocol)는 하이퍼텍스트를 빠르게 교환하기 위한 프로토콜의 일종으로, 클라이언트와 서버가 어떻게 메시지를 교환할지를 정해 놓은 규칙이다. 프로토콜의 일종이라 함은 HTTP를 제외하고도 프로토콜이 존재한다는 것을 의미하는데, 대략 아래와 같다. 계층 이름 주요 프로토콜 기능 4계층 Application Layer HTTP, DNS, FTP, ... 애플리케이션에 맞추어 통신한다. 3계층 Transport Layer TCP, UDP, ... IP와 애플리케이션을 중재해 데이터를 확실하게 전달한다. 2계층 Internet Layer IP, ICMP, ARP, RARP 네트워크 주소를 기반으로 데이터를 전송한다. 1계층 Network Interface Laye..
- Total
- Today
- Yesterday
- 스프링
- BOJ
- 알고리즘
- 파이썬
- 중남미
- 면접 준비
- 기술면접
- Backjoon
- spring
- 야경
- 스트림
- a6000
- 남미
- 백준
- RX100M5
- 세계여행
- 세계일주
- 동적계획법
- 칼이사
- 자바
- 유럽여행
- 맛집
- java
- 여행
- 리스트
- 유럽
- Algorithm
- 세모
- 지지
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |