본문 바로가기

Software Engineering

함수형 프로그래밍 https://spectrum.ieee.org/functional-programming Why Functional Programming Should Be the Future of Software Development You’d expect the longest and most costly phase in the life cycle of a software product to be the initial development of the system, when all those great features are first imagined and then created. In fact, the hardest part comes later, during the maint spectrum.ieee.org http.. 더보기
[Mac OS] Root Password 설정 그니까 얘가 도대체 뭔지 궁금해서 리더님한테 물어본 결과 내 맥북을 처음 쓰는거니 설정이 안되어있어서 그렇다.라는 답변을 받았고 이번엔 root 설정 변경하는 포스팅을 해보고자 한다. 끝났다... 1) sudo -s 2) password 입력 3) whoami 4) passswd root 5) exit 끝 더보기
npm/yarn install dockerizing하려다보니 써본 적이 없어서 시작부터 막혀서 쓰는 포스팅 task 순서대로 Yarn 설치를 하려는데 command not found ? 너 이자식... 시작부터 쉽지 않아... task을 하려는데 yarn이 command not found가 떳다 -> 찾아보니... npm을 통해 설치해야한다는 걸 파악 -> node.js를 설치하면 npm패키지 매니저는 자동으로 설치된다는 걸 파악 Q) 근데.. npm이랑 yarn이랑 같은 패키지 설치 모듈인것 같은데 왜 이렇게 설치해야하는거지? A) npm은 원래부터 있던 node 패키지 관리자임. 하지만 얘가 오래되고 js 언어 자체가 messy해서 라이브러리가 많아지다보니 충돌 나고 의존성이 꼬이고 해서 버그가 많음 -> 그걸 해결해보자고 뒤늦게.. 더보기
[Docker] basic -> Advanced, container Orchestration 모르면 어렵고 알면 쉬운 도커 그리고 모르면 쉽고 알면 어려운 k8s에 대한 주니어의 ops글이다 Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers. 도커를 한마디로 말하면 OS-level virtualization 포장 → 전달 → 실행 여기서 "OS-level"에 집중할 필요가 있다. 도커 없이 어떤 서버에 소프트웨어를 직접 설치 -> 아무리 간단한 소프트웨어라도 수많은 라이브러리에 의존성을 갖고 있음 -> 원하는 소프트웨어를 실행하기 위해 필요한 의존성 패키지들이 함께 설치됨 -> 문제는 여기서 시작됨, 두 소프트.. 더보기
TDD vs BDD vs DDD (+JDD) 기존의 폭포수 모델 에서 동일하게 가지고 있는 문제를 해결하기 위한 개발 방법론. TDD(Test Driven Development) : 테스트 주도 개발. 코드를 작성하기 전에 테스트(Test)를 먼저 작성. BDD(Behavior Driven Development) : 행동 주도 개발. 코드를 작성하기 전에 코드가 수행할 행위(Behavior)에 대한 명세를 먼저 작성. DDD(Domain Driven Design) : 도메인 주도 개발. 여기서 도메인이란, SW로 해결하고자 하는 문제의 영역, 즉 만들고자 하는 서비스를 잘게 쪼개놓은 단위(JAVE, 객체지향, OOP) 1) TDD - 참고) https://rinthel.github.io/rust-lang-book-ko/ch11-01-writing-.. 더보기
[devops]Docker, jenkins - 서버란 무엇인가? 내 웹 사이트를 다른 사람 또는 컴퓨터에서 전달해주는 프로그램. 그 서버 프로그램이 담겨져서 실행되는 컴퓨터를 서버 컴퓨터라고 한다. 다른 사람이 365일 언제나 서버로부터 정보를 받아올 수 있으려면 서버컴퓨터가 늘 켜져있어야 하고 정상작동 해야한다. 집에 있는 내 컴퓨터에 서버프로그램을 설치하여 서버컴퓨터로 만들어서 켜놓을 수 있다. 이렇게 많은 서버들을 미리 구축해주고 한대 씩 빌려주는 서비스를 서버호스팅이라 한다. + 가상머신(Virtual Machine, VM): 한 서버 컴퓨터 안에서 CPU, 메모리, 디스크를 논리적으로 분할해서 별도의 컴퓨터처럼 만든것 기존에는 하나의 컴퓨터 안에서는 운영체제가 하나만 실행될 수 있었지만 가상머신을 여러개 만들어서 컴퓨터안에서 실행시킨다면.. 더보기
[WSL] Ubuntu command sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev git clone https://github.com/pyenv/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo -.. 더보기
[python web] Django (1) - Django는 2005년 오픈소스로 시작되어 2020년 8월 기준 Django 3.1이, 21년 4월 3.2 realese. https://www.djangoproject.com/ The web framework for perfectionists with deadlines | Django Django Django makes it easier to build better web apps more quickly and with less code. Get started with Django www.djangoproject.com 1) 장고 프로젝트 생성 pip install --upgrade pip # pip upgrade mkdir mysite cd mysite python -m venv myvenv #.. 더보기