| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 쿠버네티스
- 이슈
- TypeScript
- BFS
- HTML
- VUE
- 블록체인
- 자바스크립트
- 백준
- 백엔드
- JavaScript
- next.js
- 타입스크립트
- 파이썬
- 프론트엔드
- es6
- AWS
- kubernetes
- react
- 가상화
- 리액트
- 이더리움
- 알고리즘
- 클라우드
- docker
- 컴퓨터공학
- 웹
- CSS
- 솔리디티
- k8s
- Today
- Total
목록📖 전체 글 (255)
즐겁게, 코드
[문제 링크] - https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net N과 M 유형의 백트래킹 문제입니다. 단, 중복된 수를 뽑아서는 안되며 로또번호를 오름차순으로 나열해야 한다는 점만 유의하시면 되는 문제입니다. 정답 코드 (Python) S = [] lottery = [0] * 13 visited = [] def backTrack(depth): global S if depth == 6: for i in range(6): print(l..
이번 글에서는 SOLID의 L과 I에 해당하는 리스코프 치환 원칙과 인터페이스 분리 원칙을 다뤄보도록 하겠습니다. 리스코프 치환 원칙 (Liskov Substitution Principle) 위키피디아에서는 리스코프 치환 원칙을 다음과 같이 정의하고 있습니다. 컴퓨터 프로그램에서 자료형 S가 자료형 T의 하위형이라면 필요한 프로그램의 속성의 변경 없이 자료형 T의 객체를 자료형 S의 객체로 교체(치환)할 수 있어야 한다는 원칙이다. 다만 이렇게 이해하면 어려우니, 자식 클래스와 부모 클래스 간의 행위에는 일관성이 있어야 한다는 의미로 이해해도 좋습니다. 예를 들어, 다음과 같은 직사각형 클래스가 있는 상태입니다. class Rect { _width: number = 0; _height: number = ..
SOLID 원칙은 작은 모듈을 만들거나 큰 아키텍처를 기획할 때 모두 유용하게 사용되는 원칙입니다. 이 원칙은 객체지향 프로그래밍에만 적용할 수 있는 이론이 아니라, 소프트웨어를 설계할 때 이 원칙을 지켜가며 설계하면 소프트웨어의 유연성과 재사용성을 높일 수 있을 것이라 기대됩니다. SOLID 란? S : Single Responsive Principle (단일 책임 원칙) O : Open Closed Principle (개방 - 폐쇄 원칙) L : Liskov Substitution Principle (리스코프 치환 원칙) I : Interface Segregation Principle (인터페이스 분리 원칙) D : Dependency Inversion Principle (의존성 역전 원칙) 단일 책..
오늘은 커밋을 수정하는 방법을 소개해보려 합니다. 이렇게 잘못 남긴 커밋 메시지가 있을때, 여러분들은 어떻게 메시지를 수정하시나요? 1번 유형 : 주석 등 무의미한 변경사항을 만들고, 메시지를 고쳐 새로운 커밋을 남긴다. 2번 유형 : git reset --soft 를 통해 커밋을 취소하고, 메시지를 고쳐 커밋을 다시 남긴다. 3번 유형 : 다음부터는 잘 남겨야겠다고 다짐한다. (^^;) 세 방법 모두 잘못된 방법은 아니지만 저는 지금까지 2번 유형으로 커밋 메시지를 수정하곤 했는데요, 이보다 더 쉬운 방법이 있습니다. 바로 --amend 플래그를 사용하는 방법입니다. 커밋 메시지 수정하기 git commit 커맨드에 --amend 플래그를 붙이면 직전에 남긴 커밋을 수정할 수 있게 됩니다. git co..
귀여운 고양이들이 지그재그로 위치한 모습입니다! flexbox가 적용된 컨테이너 안에 left-, right- 요소가 있고, 각 요소 안에 사진과 설명이 적절히 들어간 레이아웃입니다. 1번 고양이입니다. 2번 고양이입니다. 3번 고양이입니다. img { width: 200px; } .flex-container { display: flex; align-items: center; justify-content: space-between; padding: 10px; border: 1px solid #cdcdcd; } @media (max-width: 768px) { .flex-container { display: flex; flex-direction: column; } } css는 컨테이너에 flex 속성을 적..
오늘은 객체에 담긴 값을 불변으로 만드는 방법에 대해 알아보도록 하겠습니다. const person = { name: "chanmin", age: 25, }; 먼저 const 키워드로 선언한 변수에 객체 리터럴을 할당한 모습입니다. 이러면 객체가 불변 상태가 된 걸까요? 물론 아닙니다. 이렇게 const 변수에 객체를 할당하면 해당 객체의 참조 만이 불변값이 되어 새로운 객체를 할당하는 것이 불가능하고, 내부 프로퍼티를 변경하는 것은 여전히 자유롭게 가능합니다. const person = { name: "chanmin", age: 25, }; person.age = 100; person.school = "KAU"; console.log(person); // age 프로퍼티의 값은 변경이 가능합니다. //..
지난 글에서는 리코일이 무엇인지와 리코일과 기존 상태관리 방법의 차이를 간단하게 소개했는데요, 이번 글에서는 실제로 동작하는 여러 앱에서 리코일을 사용해 상태를 관리해보겠습니다. 리코일 설치하기 CRA로 프로젝트를 구성했다고 가정하고, 리코일을 설치해 보겠습니다. // yarn yarn add recoil // npm npm i recoil 리덕스를 사용할 때는 redux, react-redux, 경우에 따라서는 redux-thunk, redux-saga까지 설치해야 했지만, 이제는 리코일만 설치하면 됩니다! 리코일 루트 컴포넌트 정의하기 리코일을 사용하기 이전, 리코일로 전역 상태를 관리할 범위를 컴포넌트로 감싸줍니다. Tip. 는 리덕스나 컨텍스트의 Provider와 같은 역할을 합니다. import..