Loading...
2019. 12. 5. 12:00

MSA (Micro Service Architecture) 란 무엇일까?

안녕하세요. 오늘은 Micro Service Architecture에 대해 이야기 해보고자 합니다. 한동안 MSA가 굉장히 화두였는데, 요즘은 분위기가 식어지는 듯하여 오늘 블로그에 이 글을 적게 되었습니다. 우리는 백엔드 개발을 위해서 Spring, Django 등 다양한 프레임워크를 사용하여 개발을 하게 됩니다. 보통 이들 프레임워크를 이용해서 특정 기능을 수행하는 API를 설계하고 개발하여 서비스하는 것이 기본 형태이죠. 이렇게 UI, 비즈니스 로직, 데이터 레이어까지 모든 것을 한 통 속에서 운영하는 방식을 모놀리틱 아키텍처라고 이야기 합니다. 흔히 학부에서 운영체제 과목을 수강해보신 분들이라면, 모놀리틱 커널이라는 단어를 들어보셨을텐데, 거기에서 나오는 모놀리틱과 동일한 단어입니다. 그런데, 이..

[GP] Spring boot에서 REST API 개발 시작해보기

이 글은 N.K Dev Lab에서 작성된 글입니다. 안녕하세요. N.K Dev Lab에 글을 안쓴지가 정말 오래되었네요. 올해는 저의 취업 시즌인 만큼 블로그에 글을 쓰는 것에 많이 소홀했었습니다. 더욱이 Dev Lab 리뉴얼과 관련하여 여러 일들이 있었는데, 저의 Dev Lab이 다시 Jekyll로 돌아오게 되었습니다. 이유는 여러가지가 있지만 이제 제가 취업을 하게 되면 현재 하고 있는 일들을 조금 미리 간소화 하는 작업이라고 보시면 될 것 같습니다. 한 가지 예를 들어, 이제 Dev Lab에 올리는 글은 저의 손에 의해 수동으로 NKLAB(Tistory)에 게시되지 않고 자동화 된 코드에 의해서 올라가게 되는 작업 등 Hugo 보다는 Jekyll이 좀 더 편하더군요. 본론으로 넘어가서, 오늘은 Sp..

[GP] Spring boot에서 DBMS를 연동하는 방법 JPA 고급편

이 글은 N.K Dev Lab에서 작성된 글입니다. 안녕하세요. Spring 관련 글을 정말 안쓴지가 너무 오래되었네요…ㅠㅠ 요즘 데이터 분야에서 일하다보니 R을 다루면서 백엔드에 대한 포스팅이 많이 밀려있네요.. 앞으로는 Spring을 이용한 오픈 프로젝트에 참여 중이니 다시 재건을 위해서라도 천천히 하나씩 글을 작성해보도록 하겠습니다.이번에는 지난 글에 이어서 JPA 고급편에 대해 작성해보도록 하겠습니다. 워낙 오래됐음에도 불구하고 고급편에 무엇을 적어야할지 명시가 되어 있네요. 오늘은 그 부분을 다뤄보겠습니다. SQL과 HQLSQL은 Structed Query Language의 약자로 DBMS의 데이터를 조작/제어하는 쿼리 언어 중에 하나입니다. SQL Server에서는 T-SQL을 사용하는 것처럼..

2019. 11. 6. 11:09

Google Colaboratory를 이용한 머신 러닝

안녕하세요. 오늘은 머신 러닝 환경 구축을 좀 더 쉽고, 더 좋은 환경을 다름 아닌 무료로 사용해보는 시간을 가져보겠습니다. 머신 러닝을 내 PC의 환경에서 구축하는 일이란, 사실 쉽지 않습니다. 제가 꽤 오래 전에 TensorFlow를 GPU 환경에서 돌릴 수 있도록 Python의 Virtualenv에서 TensorFlow를 구축하는 방법을 올렸었는데요. 리눅스를 설치하고, Python을 설치하고, 또 그에 필요한 TensorFlow, Virtualenv를 구축하고 나면 이제는 GPU 드라이버를 설치해야 하는데, 오류도 많이 나고, 여간 쉽지 않은 과정들이 벌어지게 됩니다. 만약, 여러분들이 정말로 고급 장비를 가지고, 이를 테면 Tesla 8개를 SLI로 묶는다던지, 이렇게 한다면 위 과정을 정말로 ..

2019. 11. 2. 15:42

[React.ts] React를 Typescript로 시작해보기 - Props, State

이번 글에서는 Props, State를 Typescript에서 어떻게 사용하는지에 대해 알아보겠습니다. Javascript에서는 state를 정의하기 위해 생성자를 사용하였고, 해당 생성자의 파라미터로 Props를 넣어주었으며 Props가 필요하다면, 컴포넌트 코드 밑에 Props 타입을 정의했었습니다. import React, { Component } from 'react'; class Header extends Component { constructor(props) { super(props); this.state = { ... }; } render() { return ( Practice App ); } } export default Header; 하지만 Typescript에서 위와 같은 코드를 사용할..

2019. 11. 2. 14:42

[React.ts] React를 Typescript로 시작해보기 - 개발 환경 구성

안녕하세요. Typescript로 시작하는 첫 글입니다. Typescript의 첫 시작을 React 프로젝트로 시작하게 되었습니다. 그 이유는 제가 이번에 메인 홈페이지를 다시 리뉴얼 하게 되면서 지난 2년 동안 사용하지 않았던 React를 다시 시작하게 되었는데요. 비록 만드는 잠깐 동안이었지만 배움과 같이 더불어 진행하게 되었기 때문에 React의 변경점도 같이 살펴봄과 더불어서 이번에는 Typescript를 사용하여 개발하게 되었습니다. Create react app React를 빠르게 시작할 수 있는 방법으로 create-react-app을 사용하는 방법이 있습니다. Typescript를 사용하는 것도 역시 이 명령어로 쉽고 한 번에 구성할 수 있습니다. $ create-react-app [app..

2019. 9. 29. 10:09

[GP] Junit5를 사용한 Java 테스트 코드 작성

이 글은 N.K Dev Lab에서 작성된 글입니다. 안녕하세요. 오늘은 유닛 테스트에 대한 이야기를 해보고자 합니다. 프로그래밍 하다보면 자신이 작성한 코드가 원하는 형태로 작성되었는지 안되었는지를 테스트해보고 싶을 때가 있습니다. 저는 처음 프로그래밍을 GUI 프로그래밍으로 했다보니 그 결과를 보통 눈으로 확인하곤 했습니다. 하지만 CLI 프로그래밍을 하다보면 원하는 결과가 나오는지 안나오는지 일일이 손으로 입력하고 결과를 본다는 것이 쉽지만은 않습니다. 그럴 때 유닛 테스트를 사용해보세요. What is Unit Test ?그렇다면 유닛 테스트는 무엇인가요? 유닛 테스트는 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도대로 정확히 작동하는지 검증하는 일련의 절차 과정입니다. 좀 더 자세한 설명을 ..

2019. 8. 27. 17:19

Github Actions - React 프로젝트를 Firebase에 Deploy 하기

Actions 마지막 포스트로 React 프로젝트를 Firebase에 Deploy 하는 글을 써보도록 하겠습니다. 우리는 지난 포스트에서 YAML 파일을 가지고 간단한 Workflow와 Matrix와 Secrets 등의 환경 변수까지를 다뤄봤습니다. 이번 글에서는 기본적으로 Google Firebase에 대한 기본적인 지식이 있는 상태에서 진행을 하도록 하겠습니다. Firebase의 처음부터 시작하게 되면 글이 길어지기 때문에, 간단하게 요점만 짚고 넘어가기 위해서 Firebase의 기본 환경이 이미 구축된 상태에서 진행하도록 하겠습니다. Generate and Register Firebase Token 배포 도구로 Google Firebase에서 공식적으로 제공하는 firebase-tools를 한 번 ..

2019. 8. 26. 14:10

Github Actions - Matrix & Secrets

이번에는 Matrix를 활용하여 다중 OS 환경, 다양한 버전의 언어, 프레임워크 등을 활성화 시키는 워크플로우를 작성해보겠습니다. Matrix Matrix는 Array와 유사합니다. YAML에서는 특정 변수를 선언할 수 있는데, 이를 복수개로 선언하고 싶을 경우에는 Matrix를 사용할 수 있습니다. 아마 기존의 Travis CI를 써보신 분들이라면 익숙할 것입니다. name: Practice actions on: push: branches: - master pull_request: branches: - master jobs: build: runs-on: ubuntu-latest strategy: max-parallel: 4 matrix: python-version: [2.7, 3.5, 3.6, 3.7..

2019. 8. 24. 17:23

Github Actions - 간단한 워크플로우 생성해보기

지난 포스트에서 Github Actions에 대한 간단한 사용과 기능을 소개하는 시간을 가졌었는데요. 이번에는 직접 Github Actions를 사용해 워크플로우를 자동화하는 것을 해보도록 하겠습니다. Start 먼저 레포지터리를 Actions를 사용하고자 하는 프로젝트를 clone 하도록 하죠. $ git clone [Repository] 클론한 레포지터리에 아래의 디렉터리를 한 개 만들어보겠습니다. $ mkdir -p .github/workflows Actions를 사용하려면 먼저 Workflow를 읽을 수 있는 경로가 필요한데, 이 경로가 바로 .github 디렉터리입니다. $ touch main.yml 그리고 main.yml 라는 이름의 파일을 한 개 만들어줍니다. 이것이 이 레포지터리에서 Mai..