일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Javascript
- 리트코드
- TypeScript
- vscode
- DFS
- 안드로이드
- 백준
- 그레이들
- Python
- Redux
- network
- 자바
- DP
- Data Structure
- Algorithm
- Graph
- 프로그래머스
- java
- git
- 알고리즘
- frontend
- db
- CS
- LeetCode
- BFS
- VIM
- react
- 동적 계획법
- Database
- 다이나믹 프로그래밍
- Today
- Total
목록전체 글 (390)
늘 겸손하게
CPU 컴퓨터에서 가장 핵심적인 역할을 수행하는 부분으로 '인간의 두뇌'에 해당 크게 연산장치, 제어장치, 레지스터 3가지로 구성됨. 1. 연산 장치 - 산술연산과 논리연산 수행 (따라서 산술논리연산장치라고도 불림) - 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보냄 2. 제어 장치 - 명령어를 순서대로 실행할 수 있도록 제어하는 장치 - 주기억장치에서 프로그램 명령어를 꺼내 해독하고, 그 결과에 따라 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보냄 - 이들 장치가 보낸 신호를 받아, 다음에 수행할 동작을 결정함 3. 레지스터 - 고속 기억장치 - 명령어 주소, 코드, 연산에 필요한 데이터, 연산 결과 등을 임시로 저장 - 용도에 따라 범용 레지스..
컴퓨터의 구성 컴퓨터 시스템은 크게 하드웨어와 소프트웨어로 나누어진다. 하드웨어 - 중앙처리장치(cpu) - 기억장치 : RAM, HDD - 입출력 장치 : 마우스, 프린터 소프트웨어 - 시스템 소프트웨어 : 운영체제, 컴파일러 - 응용 소프트웨어 : 워드프로세서, 브라우저, 게임 등등 시스템 버스 하드웨어는 중앙처리장치(CPU), 기억장치, 입출력장치로 구성되어 있다. 이들은 시스템 버스로 연결되어 있으며, 시스템 버스는 데이터와 명령 제어 신호를 각 장치로 실어나르는 역할을 한다. 중앙처리장치 (CPU) 인간으로 치면 두뇌에 해당하는 부분 주기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어함. 중앙처리장치는 다음 세가지로 구성되어 있음 1. 산술논리연산장치(ALU) :..
[ 3rd party ] 하드웨어 생산자와 소프트웨어 개발자의 관계를 나타낼 때 사용하는 용어 1. 퍼스트 파티 개발자 하드웨어 생산자가 '직접' 소프트웨어를 개발하는 경우 : 퍼스트 파티 개발자 2. 세컨드 파티 개발자 하드웨어 생산자인 기업과 자사간의 관계(또는 하청업체)에 속한 소프트웨어 개발자 3. 서드 파티 개발자 아무 관련없는 제 3자 소프트웨어 개발자 주로 편한 개발을 위해 생산되는 소프트웨어인 플러그인, 라이브러리, 프레임워크 등을 개발하는 개발자가 써드 파티 개발자들.
[ 데브옵스 (DevOps) ] Development + Operations의 합성어 소프트웨어 제품이나 서비스를 알맞은 시기에 출시하기 위해 개발과 운영이 상호 의존적으로 대응해야 한다는 의미 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 의미한다. 목적 : 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것 데브옵스의 개념은 애자일 기법과 지속적 통합의 개념과도 관련이 있다. 애자일 기법 실질적인 코딩을 기반으로 일정한 주기에 따라 지속적으로 프로토타입을 개발하고, 필요한 요구사항을 파악하며 이에 따라 즉시 수정사항을 적용하여 결과적으로 하나의 큰 소프트웨어를 개발하는 적응형 개발 방법 지속적 통합 통합 작업을 초기부터 계속 수행해서 지속적으로..
[ 함수형 프로그래밍 ] 다른 이름 = 선언형 프로그래밍 함수형 프로그래밍은 순수 함수와 보조 함수의 조합을 통해 외부 상태를 변경하는 부수 효과를 최소화해서 불변성(immutability)을 지향하는 프로그래밍 패러다임이다. 함수형 프로그래밍 특징 1. 순수함수 (Pure Function) 동일한 입력에는 항상 동일한 값을 반환하는 함수 함수 실행이 side effect를 발생시키지 않는 함수 side effect 예시 프로그램 상태 변경 함수 외부 변수 변경 함수의 입력, 출력과 관계없는 작업 2. 비상태, 불변성 (Stateless, Immutability) 함수형 프로그래밍에서 데이터는 불변성을 유지해야 한다. 데이터 변경이 필요한 경우, 원본 데이터의 복사본을 만들어 복사본을 사용한다. 3. ..

[ 등장배경 ] 초기 소프트웨어 개발 방법은 계획 중심의 프로세스 마치 도시 계획으로 건축에서 사용하는 방법과 유사하며, 당시에는 이런 프로세스를 활용하는 프로젝트가 대부분 90년대 이후 소프트웨어 사용자들이 '일반 대중들'로 바뀌면서 트렌드가 급격하게 빨리 변화하는 시대가 도달했다. 이로써 비즈니스 사이클(제품 수명)이 짧아졌고, SW 개발의 불확실성이 높아지게 되었다. [ 새로운 개발 방법의 등장 ] 개발의 불확실성이 높아지면서 경량 방법론 주의자들은 일단 해보고 고쳐나가자는 방식으로 개발하게 되었다. => 규칙을 적게 만들고, 가볍게 대응을 잘하는 방법을 적용하는 것 이런 경량 방법론 주의자들이 모여 자신들이 사용하는 개발 방법론을 공유하고, 공통점을 추려서 애자일이라는 용어에 의미가 담기게 된것...

TDD - Test Driven Development "테스트 주도 개발" 반복적인 검토와 고쳐쓰기로 소프트웨어를 개발하는 방식 우리는 보통 개발할 때, 설계(디자인)를 한 이후 코드 개발과 테스트 과정을 거치게 된다. 하지만 TDD는 기존 방법과는 다르게, 테스트케이스를 먼저 작성한 이후에 실제 코드를 개발하는 리팩토링 절차를 밟는다. 반복적인 검토와 고쳐쓰기를 통해 좋은 글이 완성되듯이 반복적인 검토와 고쳐쓰기로 소프트웨어를 개발하는 방식이 TDD [ 장점 ] 1. 작업과 동시에 테스트를 진행하면서 실시간으로 오류 파악이 가능하다 ( 시스템 결함 방지 ) 2. 짧은 개발 주기를 통해 고객의 요구사항 빠르게 수용 가능. 피드백이 가능하고 진행 상황 파악이 쉬움 3. 자동화 도구를 이용한 TDD 테스트케..
클린코드 코드를 작성하는 의도와 목적이 명확한 코드 다른 사람이 읽기 쉬운 코드 가독성이 좋은 코드 클린코드를 만들기 위한 규칙 1. 네이밍 (Naming) 변수, 클래스, 메소드에 의도가 분명한 이름을 사용한다. int date; function isAlpha(); ... 이름만 보고도 어떤 변수인지, 메소드인지 파악 가능한 이름 사용 2. 주석달기 반드시 주석을 달아야 할 이유가 있는 경우에만 작성 코드 내용 파악이 쉬운 경우 주석 달지 말 것 설명을 위한 설명은 금지 3. 꾸미기 (Aesthetics) 코드를 보기좋게 배치하고 꾸미기. 보기 좋은 코드가 읽기도 쉽다. 규칙적인 들여쓰기와 줄바꿈 사용 일관성있고 간결한 패턴으로 줄바꿈 메소드로 중복 코드 제거 4. 흐름제어 흐름제어문 (if, whil..