전체 글 40

[API] 공공데이터 API 사용하기

공공 데이터 포털에서는 다양한 데이터들에 대한 API를 제공하고 있다. React Web개발할 때, 이를 활용하여 기능을 구현하는 방법을 정리하고자 한다. 회원가입 먼저, 공공데이터 포털을 가입해야한다. 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.data.go.kr 활용신청 원하는 데이터를 찾고 해당 데이터를 활용 신청합니다. 데이터 호출 활용 신청한 데이터가 승인 처리가 되면 API를 사용할 수 있다. [마이페이지] - [승인 처리된 데이터]를 선택하여 아래와 같은 정보를 확인할 수 있다. 아래 API 목록을 확인하면 Parame..

[React] github pages를 활용하여 React 프로젝트 배포하기

패키지 설지 gh-pages 패키지를 설치합니다. npm install gh-pages --save-dev package.json 업데이트 homepage 주소 추가 hompage 주소 정보를 업데이트 합니다. "homepage": "http://[github id].github.io/[github repository name]" deploy script 추가 deploy 관련 script를 추가합니다. "scripts": { //... "predeploy": "npm run build", "deploy": "gh-pages -d build" } github pages 설정 github pages에서 사이트 주소 확인하기 작업 & Deploy 작업이 완료된 후, 아래 명령어를 수행합니다. npm run ..

코로나 이후 홍콩 여행

아기다리고 기다리던 코로나 이후의 홍콩 여행이 재개되었다. 아직 완벽하게 풀린 것은 아니고 몇가지 준수 사항이 있긴 하지만 기존처럼 여행이 가능하다. 방금 인천공항에서 돌아오자마자 다른 사람들의 효율적인 여행을 위해 정보를 공유한다. 아래의 정보는 23.02.11 ~ 23.02.14 기간의 여행을 바탕으로 작성되었다. 코로나 관련 특이사항 홍콩 입경시 입경 24시간이내 RAT 검사 (전문가용 신속 항원 검사) 홍콩 입경 이전 신속 항원 검사에 대한 결과를 사진으로 찍어 가지고 있어야 한다. 홍콩 공항에서 입국 심사를 하러 갈 때 직원이 랜덤하게 관광객을 지정하여 항공기 편명, 전화번호를 수집하고 사진 정보를 다시 한 번 일깨워준다. (근데 굳이 열어서 보여달라고는 하지 않음.... 여행 기간동안 저 사진..

여행 2023.02.14

private, protected method 단위 테스트 코드 작성하기

프로젝트를 진행할 때, 필수적으로 해야하는 것들 중에 하나가 바로 테스트 코드가 아닐까 싶다. 개발된 메서드마다 해당 메서드가 정상적으로 동작하는지 여러 가지 케이스를 통해 함수의 신뢰성을 보장할 수 있다. 메서드 접근 지정자 우리는 메서드를 개발할 때 접근 지정자를 항상 지정한다. (public, protected, private) public일 경우에는 단위 테스트 코드를 작성하는 것에 아무런 문제가 없지만, protected나 private의 경우에는 테스트 객체에서 메서드에 대한 접근이 불가능하기 때문에 한계가 발생한다. 우회 방법 보통 접근이 어려운 메서드에 대한 테스트 코드를 작성하기 위해서 다양한 우회 방법이 있다. 그 중 몇 가지를 소개하고자 한다. 지금부터 나오는 테스트 코드 예제는 아래..

ListBox 사용하기

프로젝트를 진행하다가 보면 목록을 보여줘야 하는 경우가 빈번하게 발생한다. 그럴 때마다 어떤 Control을 사용하는게 좋을 지 고민하게 된다. 필자의 경우에는 Column 정보가 필요할 경우에는 ListView를, 각 Cell 단위의 작업이 필요할 경우에는 DataGrid를 Column 정보없이 하나 하나의 Item이 중요할 때에는 ListBox를 사용한다. 가장 최근에는 ListBox를 이용하여 원하는 목록 UI를 구성했다. 그래서 오늘은 ListBox를 사용하는 방법에 대해 설명하고자 한다. ListBox란? ListBox는 기본적으로 ListBoxItem의 목록을 나타낸다. ListBoxItem에 어떠한 내용이 있던간에 ListBox는 해당 ListBoxItem 목록을 나타내고 이를 사용하는 기능..

Adonis UI 사용기

최근 WPF를 이용하여 사이드 프로젝트를 사용하기로 했다. 회사에서 그 동안 주구장창 Infragistics를 사용해와서 다른 UI toolkit을 사용해보고 싶었다. 적절한 대상을 찾기 위해 Nuget을 검색해보다가 Adonis UI라는 패키지를 발견했다. Adonis UI Home Lightweight UI toolkit for WPF applications offering classic but enhanced windows visuals benruehl.github.io Adonis UI는 메인 페이지의 설명처럼 '경량 UI 툴킷'이다. 기본적으로 WPF에서 제공하는 UI에 입힐 수 있는 Style을 제공하는 컨셉으로 구현 되어있다. 상대적으로 Control을 직접 제공하는 개수가 적은 것으로 보인..

[C#] DataGrid로 DataTable 출력시 일부 cell이 없어지는 경우

배경 DataGrid는 ItemsSource로 DataTable을 받아 아주 편리하게 Table을 화면에 나타내준다. 이를 이용하여 파일을 읽고 파일을 DataTable로 만들어 DataGrid를 통해 화면에 나타내는 기능을 개발하고 적용하였다. 잘 적용되었으리라 생각하고 일상을 지내던 와중에 몇몇 cell의 내용이 누락되고 있다는 것을 알게 되었다. 원인 먼저 아래와 같이 원인을 파악하고자 했다. 1. 파일을 읽어서 생성된 데이터가 정상적인가? 2. 정상 데이터를 통해 만들어낸 DataTable의 내용이 정상인가? (Column, Row, Cell) 먼저, 파일을 읽는 모듈을 살펴보았다. 정상적으로 읽어오고 정상적으로 객체를 생성하고 있었다. 그 다음으로 DataTable을 만들어 출력되지 않는 cel..

에라토스테네스의 체

최근 알고리즘 문제를 풀고 있는데, 소수를 찾는 문제를 자주 접한다. 물론 BruteForce 방식으로 찾아도 기능상엔 문제가 없지만, 수행 속도면에서 몇몇 문제의 결과가 실패로 나타나곤 한다. 이때 에라토스테네스의 체라는 개념을 접하게 되었다. 에라토스테네스의 체란? 에라토스테네스의 체는 무엇일까? 고대 그리스 수학자가 체로 숫자를 걸러내는 방식이라 하여 체라는 단어가 붙었다고 한다. 이는 소수를 찾기 위한 가장 간단하고 빠른 방법으로 알려져있다. 방법 1부터 100까지 숫자가 있다고 가정하자. 소수도 아니고 합성수도 아닌 자연수 1을 제외하자. 2를 제외한 모든 2의 배수는 소수가 아니니 제외하자. 3을 제외한 모든 3의 배수는 소수가 아니니 제외하자. 4의 배수는 2의 배수를 처리할 때 이미 지워졌..

KMP 알고리즘 (Knuth Morris Pratt)

문자열 탐색 많은 사람들이 업무를 하기 위해 문서를 볼 때 원하는 부분을 빠르게 찾기 위해 문자열 검색이라는 기능을 사용하곤 한다. 보통 Ctrl + F 단축키를 이용하여 현재 보이는 화면내의 수 많은 문자 중에서 원하는 문자열을 찾는다. 일상 속에서 자연스럽게 사용하고 있는 기능이지만, 수 많은 문자중에 원하는 문자열을 빠르게 찾기까지 알고리즘이 존재한다. Brute Force 먼저, 단순하게 생각해보자. 위 처럼 "SON IS BEST PLAYER"라는 텍스트가 존재하고 우리는 "BEST"라는 문자열 패턴을 찾아보자. Brute Force 방식에서는 막연하게 모든 텍스트를 지나가면서 패턴과 해당 위치의 텍스트를 비교한다. 텍스트 인덱스 0과 문자열 패턴인텍스 0을 먼저 비교한다. S와 O는 서로 다른..