분류 전체보기 144

React_Chapter01_리액트시작

1.1 왜 리액트인가? 리액트 이해 리액트는 오직 View만 신경쓰는 라이브러리이다 리액트 프로젝트에서 특정 부분이 어떻게 생길지 정하는 선언체가 있는데, 이를 컴포넌트라 한다. 컴포넌트는 재사용이 가능한 API로 수많은 기능들을 내장하고 있으며, 컴포넌트 하나에서 해당 컴포넌트의 생김새와 작동 방식을 정의한다. 사용자 화면에 뷰를 보여 주는 것을 렌더링이라 한다. 리액트 컴포넌트가 최초로 실행한 '초기 렌더링'과 컴포넌트의 데이터 변경으로 다시 실행되는 '리렌더링'이 존재한다. 초기 렌더링 리액트에서는 렌더링을 다루는 함수인 render 함수가 존재한다. render() {...} render 함수는 컴포넌트가 어떻게 생겼는지 정의하는 역할을 한다. render 함수를 실행하면 그 내부에 있는 컴포넌트..

React 2023.01.21

오픈소스SW_Github Actions

Django 프로젝트를 하면서 CD를 위해 Github Actions를 사용하기로 해 전 프로젝트에서 한번도 사용해본적이 없기에 공부할 겸 포스팅했다. Github Actions란? GitHub Actioins는 GitHub에서 제공하는 CI(Continuous Integration)/CD(Continuous Deployment)를 위한 서비스이다. GitHub Actions를 사용하면 Github repository에 어떤 이벤트가 발생했을 때 특정 작업이 일어나게 하거나 주기적으로 어떤 작업들을 반복해서 실행시킬 수도 있다. 즉, 특정 이벤트의 루틴을 만들어주는 것이다. 예를 들어 어떤 repository에 PR(Pull Request)를 생성하게 되면 Github Actions를 통해 해당 코드 테..

오픈소스SW 2023.01.21

프레임워크와 라이브러리

개발을 하다보면 어떤 프레임워크를 사용하고, 어떤 라이브러리를 사용할 지 많은 고민을 하게된다. 하지만 정작 라이브러리와 프레임워크의 차이점은 잘 모르는 경우가 많다. 특히 최근에는 라이브러리와 프레임워크의 경계가 모호해져 더욱 햇갈린다. 물론 둘의 차이점을 몰라도 개발은 할 수 있지만 이왕이면 둘의 차이점을 명확히 알고 사용하는게 좋지 않을까해서 작성했다. 라이브러리와 프레임워크는 둘다 다른 개발자가 쓴 코드고 우리의 프로젝트를 위해서 가져다 사용한다는 공통점이 있다. 그럼 차이점은 무엇이 있을까?? 둘의 정의를 한번 알아보자. 프레임워크 framework는 frame + work 다. frame은 '틀'이고, work는 '일하다'라는 뜻으로 이것을 합쳐보면 '틀을 가지고 일하다'가 된다. 즉 소프트웨..

카테고리 없음 2023.01.08

파이썬 웹 프로그래밍, 기초편_Chapter03_Django 웹 프레임워크

장고는 기본적으로 MVC 패턴에 해당하는 MVT 패턴에 따라 개발하도록 설계되어 있다. 1. 장고의 특징 장고 웹 프레임워크의 주요 기능별 특징을 살펴보자. MVC 패턴 기반 MVT 장고는 MVC 패턴을 기반으로 한 프레임워크이다. 하지만 장고에서는 View를 Template, Controller를 View라고 부른다. 객체 관계 매핑(ORM) ORM 기능을 통해 다양한 데이터베이스 시스템을 지원하며 SQL 문장을 사용하지 않고도 테이블을 조작할 수 있다. 자동으로 구성되는 관리자 화면 장고는 웹 서버의 콘텐츠, 즉 데이터베이스 관리 기능을 위한 관리자 화면을 프로젝트를 시작하는 시점에 기본 기능으로 제공한다. 우아한 URL 설계 웹 프로그래밍에서 URL 설계는 필수인데 장고에서는 유연하면서도 강력한 U..

카테고리 없음 2022.12.29

완벽한 IT 인프라 구축을 위한 Docker_Chapter04_Docker 명령

4.1 Docker 이미지 조작 이미지 다운로드(docker image pull) Chapter3에서 했다시피 이미지 취득은 docker image pull 명령어를 사용한다. docker image pull [옵션] 이미지[:태그명] 이미지 목록 표시 docker image ls [옵션] [리포지토리명] 4.2 Docker 컨테이너 생성/ 시작/ 정지 이미지가 만들어졌으면 컨테이너를 생성할 수 있다. Docker 컨테이너 라이프 사이클 컨테이너에는 다음과 같은 라이프 사이클이 존재한다. 컨테이너 생성(docker container creeate 명령) 이미지로부터 컨테이너를 생성한다.이미지의 실체는 'Docker에서 서버 기능을 작동시키기 위해 필요한 디렉토리 및 파일들'이다. docker contai..

Docker 2022.12.25

완벽한 IT 인프라 구축을 위한 Docker_Chapter03_Docker 설치와 튜토리얼

3.1 Docker 설치와 작동 확인 Ubuntu에 설치하기 현재 GCE(Google Cloud Engin)을 사용하고 있으며, OS는 Ubuntu이기에 해당 OS에 설치하는 법을 알아본다. 설치 사전 준비 apt업데이트 apt의 패키지 리스트를 업데이트 한다. sudo apt-get -y update GPG 키 추가 다음 명령을 실행하여 Docker의 공식 GPG 키를 추가한다. gpg는 GNU Privacy Guard의 줄임말로서 배포 파일의 인증을 확인하는데 사용되는 자유 소프트웨어 패키지라는데 잘 모르지만 필요한것 같다. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 리포지토리 등록 /etc/apt/sour..

Docker 2022.12.25

완변학 IT 인프라 구축을 위한 Docker_Chapter02_컨테이너 기술과 Docker의 개요

Docker는 컨테이너 기술을 사용하여 애플리케이션의 실행 환경을 구출 및 운용하기 위한 플랫폼이다. 애플리케이션의 실행에 필요한 것을 하나로 모아, Docker 이미지를 관리함으로써 애플리케이션의 이식성을 높일 수 있다. 2.1 컨테이너 기술의 개요 컨테이너 컨테이너란 호스트 OS사에 논리적인 구획(컨테이너)을 만들고 애플리케이션의 필요 자원을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것이다. 컨테이너는 오버헤드가 적기 때문에 가볍고 고속으로 작동한다는 것이 특징이다. 컨테이너 기술을 사용하면 OS나 디렉토리, IP 주소 등과 같은 시스템 자원을 마치 각 애플리케이션이 점유하고 있는 것처럼 보이게 할 수 있다. 컨테이너는 애플리케이션의 실행에 필요한 모듈을 컨테이너로 모을 수 있기..

Docker 2022.12.25

QuickStart 스프링부트_Chapter03_테스트와 로깅, 빌드

1. 스프링 부트 테스트 자신이 작성한 코드에 문제가 없음을 검증하기 위해 어떤 방법으로든 테스트 코드를 작성한다. 그리고 이렇게 작성된 테스트 코드는 유지보수 과정에서 재사용되어 시스템의 안정성을 보장하는 중요한 장치가 된다. 그래서 대부분의 프로젝트에서는 jUnit을 기반으로 일관성 있는 단위 테스트를 진행하는데, 단위 테스트란 자신이 작성한 클래스에 대한 테스트로서 테스트 단계 중에서 가장 기본이라 할 수 있다. 단위 테스트는 테스트할 객체가 최대한 단순해야 한다. 하지만 웹 애플리케이션은 테스트 대상 객체가 특정 서버와 관련 있거나 다른 객체들과 연관되어 관계가 복잡한 경우가 일반적이다. 따라서 서버를 구동하지 않고 컨트롤러만 단독으로 테스트하거나 컨트롤러와 연관된 비즈니스 컴포넌트를 실행하지 않..

Spring 2022.12.12

오픈소스SW_Chapter12_고급 기능

refs 커밋은 고유의 SHA1 해시 값을 가지고 있는데 이는깃의 refs 목록으로 가지고 있는다. refs폴더는 .git 폴더에 있으며 refs폴더에는 다음과 같은 폴더들이 있다. show 명령어는 해시 값을 사용하여 커밋 정보를 확인할 수 있는데, 반대로 rev-parse 명령어로 포인터의 해시 값을 알 수도 있다. 예를 들어 브랜치는 커밋 해시 값을 가리키는 포인터이므로 브랜치 이름을 사용하여 참조하는 해시 값을 조회할 수 있다. 단, refs는 로컬 저장소에만 기록하므로 원격 저장소나 복제, 복사 등으로는 refs 기록을 옮길 수 없다. reflog 깃은 내부적으로 작업한 모든 HEAD와 브랜치 포인터를 기록하는데 이때 사용된 포인터들의 기록을 reflog라고 한다. reflog 기록은 reflo..

오픈소스SW 2022.12.08

오픈소스SW_Chapter11_서브모듈

대형 프로젝트 규모가 큰 프로젝트는 저장소 용량이 많이 필요하지만 단지 용량이 크기만 한 저장소는 비효율적이다. 필요에 맞게 작은 저장소로 분할하여 운영하는 것이 더 효율적이다. 깃은 이러한 방식을 지원하는데, 저장소의 분할 개념을 서브모듈이라 한다. 서브모듈은 저장소 하나가 다른 깃 저장소를 포함하는 형태를 의미한다. 보통 메인저장소는 부모 저장소를 분할 저장소는 자식 저장소를 의미한다. 부모 자식 관계로 분리된 로컬 저장소는 또다시 개별 원격 저장소와 연결되어있다. 실습을 위한 저장소 준비 서브모듈 추가 저장소를 모듈로 연결하려면 submodule 명령어를 사용해야 한다. git submodule add 원격저장소URL 폴더이름 서브 모듈로 저장소가 추가되면 메인 저장소는 서브 저장소를 서브 폴더 형..

오픈소스SW 2022.12.08