전체 글 (572) 썸네일형 리스트형 똑똑한 코드 작성을 위한 실전 알고리즘 리뷰 오랜만에 다시 읽게 되는 알고리즘 책이다. 이 책에 나오는 주요 알고리즘에 대한 내용은 다음과 같다. 문제해결, 알고리즘 분석 해싱, 힙, 정렬, 이진트리, 그래프 우리가 알고리즘 공부를 할때 기본적으로 배워야 하는 알고리즘 들이다. 약간 전공서적 같은 느낌이 들긴 하지만 그것보다는 내용이 좀더 친절하게 나와 있다. 히자만 읽다보면 어려운 내용들이 많이 섞여 있다. 기초에 관련된 책이긴 하지만 난이도는 있는 책이다. 그리고 주요 코드들은 파이썬으로 되어있는데 파이썬을 모른다고 하더라도 크게 문제가 될것 같지는 않다. 코드 부분에 대한 설명은 거의 라인 단위로 설명을 해주고 있기 때문에 어떤 언어든 프로그래밍을 해본 사람이면 이해할수 있을 것이다. 복습 차원에서 각 장 마지막에 있는 연습문제들은 한번씩 스.. BASE 분산 트랜잭션 속성 소프트웨어 아키텍처 Hard Parts 의 내용을 정리한 내용입니다. BASE 분산 트랜잭션 특유의 속성 BA (Basic availavility) 분산 트랜잭션의 모든 서비스 또는 시스템이 분산 트랜잭션에 참여할 수 있으리라고 기대하는것. S (Soft state) 분산 트랜잭션이 진행중이고 원자적 비지니스 요청이 미 완료된 상태. 고객 프로필 정보에서 Profile 테이블에는 데이터카 커밋 됐지만 다른 연관 테이블에는 커밋되지 않은 상태. E (Eventual Consistency) 충분한 시간이 지나면 언젠가는 결국 분산 트랜잭션이 완료되고 모든 데이터가 서로 동기화 된다는 의미. 백그라운드 동기화 패턴 (Background synchronization pattern) - 326p 별도의 외부 서비.. 소프트웨어 아키텍처 - The Hard Parts 리뷰 아키텍처 관련 책들을 요즘 많이 읽어보고 있다. 책을 읽는다고 완벽하게 습될수 있는 범위는 아니지만 여러번 읽으면 좋아지겠지라는 생각으로 읽고 있다. 이 책은 아래와 같이 등장인물이 나온다. 그리고 그들의 시스템을 변경시켜가는 과정을 아키텍처 이론과정과 함께 설명을 하고 있다. 아마도 우리가 관리 또는 개발하는 시스템을 변경하려 할때 이 등장인물들이 겪는 경험을 하게 되지 않을까 생각이 든다. 등장인물들의 대화를 통해서 요구사항과 현재 시스템의 상황들을 파악할 수 있다. 아마도 이부분이 다른 책들과 큰 차이점인것 같다. 딱딱한 이론만 있는것보다는 시나리오가 있는 이야기가 있다보니 이해를 잘 할수 있다. 각 챕터마다 처음 시작과 끝에 위와 같은 대화들을 주고 받는 내용들이 나온다. 이 이야기 속에서 나오는.. Python 가상환경 Python Virtualenv 프로젝트별 종속성 문제를 해결하기 위해서 가상환경을 제공한다. 동시에 여러개의 프로젝트 진행시 각각의 파이썬 버전이 다를경우 사용한다. virtualenv 환경 구성 pip install virtualenv D:\STUDY\study_python>virtualenv py3.8-env created virtual environment CPython3.8.5.final.0-64 in 6461ms creator CPython3Windows(dest=D:\STUDY\study_python\py3.8-env, clear=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, whee.. Ubuntu 에서 파이썬 버전 확인 및 변경 Ubuntu 에서 파이썬 설치 위치 확인 DESKTOP-MBRI3VL:~$ python --version Python 2.7.17 DESKTOP-MBRI3VL:~$ python3 --version Python 3.6.9 파이썬을 설치하다 보면 2.X 도 있고 3.X 도 있다. 위와 같이 각각의 버전을 확인해보면 설치된 버전을 확인할 수 있다. Ubuntu를 설치하면 기본적으로 2.7을 path 로 설정한다. 아래와 같이 명령어를 실행 하면 설치된 파이썬 목록들이 나완다. (정말 이것 저것 많다.) DESKTOP-MBRI3VL:~$ ls /usr/bin | grep python python-config python2 python2-config python2.7 python2.7-config python3 .. [WSL] 디폴트 배포버전 설정하기 PS C:\Users> wsl -l -v NAME STATE VERSION * docker-desktop-data Stopped 2 docker-desktop Stopped 2 Ubuntu-18.04 Running 2 위와 같이 배포버전이 여러개 일 경우 default 로 설정되는 배포버전으로 변경하기 위해서는 다음과 같이 설정하면 된다. C:\Users> wsl --setdefault Ubuntu-18.04 그럼 다음과 같이 변경이 된다. C:\Users> wsl -l -v NAME STATE VERSION * Ubuntu-18.04 Running 2 docker-desktop Stopped 2 docker-desktop-data Stopped 2 이것을 찾아봤던 이유는 VS Code 에서 remote.. Infrastructure as Code - 코드로 인프라 관리하기 리뷰 코드로 인프라를 관리하기 위해서는 어떤 것들이 필요할까. 어쩌면 우리는 이미 어느 순간 자기도 모르게 코드를 인프라로 관리하고 있을지도 모른다. 가장 간단한 예로 설정파일을 Git에 push 하고 운영, 검증, 개발로 나누어서 관리하는 것도 코드로 인프라를 관리하는 것이다. 단지 그 범위가 좁을 뿐이다. 코드리 인프라를 관리하기 위해서는 다음과 같은 것들이 필요하다. 1. 모든 것을 코드로 정의한다. 우리가 생각하는 것 보다 코드로 관리를 할수 있는 것들이 정말 많다. 간단한 설정파일 부터 시작해서 인프라를 구성하는 요소들 까지 말하기 시작하면 한도 끝도 없다. 그리고 최근에는 클라우드를 많이 사용하기 때문에 정의해야 할 요소들이 더 많아졌다. 퍼블릭 클라우드에서 화면에서 직접 마우스를 클릭하면서 리소스.. 오늘부터 IT 를 시작합니다 리뷰 책 표지에 보면 "비유와 이야기로 풀어낸 비전공자를 위한 필수 IT 교양서" 라고 써있다. 책 내용의 대부분이 IT 관련 용어들, 상황들에 대한 이해를 돕기위한 이야기들로 구성되어있다. IT 교양서인만큼 읽는데 어려움은 없었다. 물론 전공자의 입장에서 책을 읽었기 때문에 더 쉽게 느껴졌을 수는 있다. 책에 나오는 내용들에 대해서 이미 알고 있거나 최소한 한번정도는 들어봤던 용어들이었기 때문이다. 하지만 비전공자라고 해서 이해하지 못할 내용은 없어보였다. IT 용어들 중에서도 일상생활에서 충분히 들어봤을 정도의 용어들이 나오기 때문이다. 수학적 지식이나 프로그래밍 관련 전문 지식들이 많이 섞여서 내용이 구성되었다면 읽다가 어려움을 느꼈을 분들이 많을지 모르겠지만 이책은 그런 부분은 거의 없어서 일반 교양서.. 그림으로 공부하는 마이크로 서비스 구조 최근에는 마이크로 서비스라는 단어가 굉장히 빈번하게 사용되고 있다. 클라우드환경이 당연히 여겨지고 거기에 배포하여 운영하는 소프트웨어들이 많아지면서 어플리케이션의 구조를 마이크로서비스로 해야 한다는 이야기는 쉽지않게 찾아볼 수 있다. 하지만 생각했던것보다 기존 모놀리스 오플리케이션을 마이크로서비스로 전환을 한다는 것은 쉽지않은 일이다. 그리고 온프라미스에서 운영되었던 환경들을 클라우드로 이전하는 것도 많은 것들의 대한 검토가 필수적이다. 그만큼 마이크로서비스는 알아야 되는것도 많고 많은 영역의 지식을 필요로 한다. 어디서부터 공부해야 할지도 막막해진다. 그림으로 공부하는 마이크로서비스 구조, 이 책은 마이크로서비스에 대한 지식을 습득하기에 좋은 책이다. 마이크로서비스에 대한 배경부터 시작해서 구조, 패턴.. [React] Warning: Each child in a list should have a unique "key" prop. React 에서 Key 가 필요한 이유 Map 사용시 고유한 Key 가 필요하다. React 는 상태를 메모리에 저장하고 있다가 변경된 부분만 렌더링 한다. Key 값이 없으면 모든 데이터를 비교해야 하지만 Key 가 있으면 Key만 비교하면 된다. {props.users.map((user) => ( {user.username} ({user.age} years old) ))} Map 에서 index 를 Key로 하면 안되는 이유 0번의 index 가 삭제되면 React 가 변경을 감지하여 리렌더링 되고 0번 부터 다시 매핑한다. 1번 인덱스가 0번으로 매핑이 된다. 결론적으로 인덱스가 추가되거나 삭제되면 값이 바뀌기 때문에 index 를 key 로 사용하는것은 안좋다. 이전 1 ··· 4 5 6 7 8 9 10 ··· 58 다음