Why So Serious? Just For Fun. No Fun No Gain. 안녕하세요. 누누 컴퍼니의 으악SOUND입니다. 한국어 자연어 처리를 하다보면 자모를 분리해야하는 일이 가끔 생깁니다. 구글에서 "한글 자모분리"를 검색하면 다양한 결과물의 소스코드를 발견하실 수 있고, 이를 가져다 사용하실 수 있습니다. 또한 라이브러리 형태로 되어있는 모듈을 다운로드받아 진행하실 수도 있겠습니다. 그래서 이번 포스트에서는 자모를 분리하는 소스 코드도 소개하지만 조금 더 원론적인 이야기를 해보려 합니다. (그래서 데이터베이스는 언제..?) 유니코드를 이용하여 한글의 자모를 분리하는 것은 계산식이 들어가게 됩니다. 계산식을 도출하기에 앞서 한글의 기본 구성에 대해서 알아보겠습니다. 한글의 기본 구성은 아래와..
gRPC(Google Remote Procedure Call)는 모던하고 어떤 환경에서나 실행할 수 있는 고성능 오픈소스 RPC 프레임워크입니다. 먼저, RPC가 무엇인지 알아보겠습니다. RPC RPC란 원격 프로시저 호출의 약자로, 클라이언트 애플리케이션에서 백엔드 서버(gRPC서버)의 메소드를 마치 자신의 메서드를 호출하는 것처럼 직접 호출할 수 있습니다. 이는 MSA환경의 서비스를 보다 쉽게 구축할 수 있게 합니다. 구글이 제공하는 RPC 통신 기술을 gRPC라 칭합니다. 개념 자체는 RPC (Remote Procedure Call) 와 크게 다르지 않지만, 세부 구현에 있어서 여러 차이점이 존재합니다. Protocol Buffers RPC는 클라이언트와 서버 간의 데이터를 주고받기 위해서 직렬화/..
지난 5월, Facebook에서 새로운 React 상태 관리 라이브러리를 발표하였습니다. Facebook에서 공식으로 지정한 상태 관리 라이브러리는 아니지만, 처음 개발한 상태관리 라이브러리라는 점에서 큰 주목을 받고 있습니다. 아직은 실무에 적용하기에는 이른 베타 버전(v0.0.13) 입니다. 점유율이 점차 증가하고 하고 있고 해외에서는 Redux 만큼 관심이 뜨겁다고 합니다. Recoil 세팅 $ create-react-app app $ cd app $ yarn add recoil Recoil 튜토리얼에서는 ESLint 설정을 권장하고 있습니다. { "plugins": [ "react-hooks" ], "rules": { "react-hooks/rules-of-hooks": "error", "reac..
Why So Serious? Just For Fun. No Fun No Gain. 안녕하세요. 누누 컴퍼니의 으악SOUND입니다. 원래 계획대로라면 데이터베이스에 대한 다음 시리즈를 포스팅해야 하는데, 금주 개발을 진행하며 한 번쯤 공유하고 싶은 내용이 생겨 주제를 바꾸게 되었습니다. 다음 포스팅에서는 다시 데이터베이스를 주제로 돌아오겠습니다. 오늘 공유하고 싶은 내용은 가상 환경에 대한 이야기입니다. 가상 환경은 Python 뿐만 아니라 버전에 민감한 언어라면 필수적으로 사용해야 하고, 민감하지 않더라도 쾌적한 개발 환경을 위해 사용하는 것이 좋습니다. 저는 현재 Python을 사용하고 있기 때문에 Python을 기준으로 가상 환경의 중요성과 가상 환경 구축을 도와주는 모듈들을 비교해보는 시간을 갖도록..
안녕하세요 :) 손누누입니다. 이번 주는 저번 주에 공지한 내용과 달리 ㅠㅠ 다른 주제를 가지고 글을 포스팅을 해보고자 합니다. 회사 적응하느라 ㅠㅠ display: flex; 에 대한 내용을 정리하지 못하여, 잠시 미루게 되었습니다. ㅠㅠ 그 대신 오늘은 토이프로젝트를 진행하면서 느꼈던 저의 경험과 토이 프로젝트를 진행하면서 주의해야 할 점에 대해서 여러분과 공유해보고자 합니다 :) ( 우왕!! 짝짝짝 >_
서버로부터 받은 토큰 어디에 저장할까? 브라우저의 localStorage or sessionStorage에 담아서 사용한다. 브라우저의 쿠키를 사용한다 1. localStorage or SessionStorage에 담아서 사용할 경우 사용하기가 매우 편리하고 구현하기도 쉽다. 단, 누군가 페이지(ex. 게시글)에 악성 스크립트를 삽입한다면 쉽게 토큰을 탈취 당할 수 있다. (XSS 공격) 2. 쿠키에 담아서 사용한다 쿠키 역시 XXS 공격에 노출되어 있지만 httpOnly라는 속성을 활성화하면 자바스크립트를 통해 쿠키를 조회할 수 없으므로 악성 스크립트로부터 안전하다. 그 대신 CSRF(Cross Site Request Forgery)라는 공격을 받을 수 있다. 결론 CSRF 공격은 백엔드에서 reque..
Why So Serious? Just For Fun. No Fun No Gain 안녕하세요. 누누 컴퍼니의 으악SOUND입니다. 저번 포스팅에서 설명했듯 네트워크가 아닌 새로운 주제에 대한 요청이 있어 투표를 진행했고, 투표 결과 데이터베이스로 주제가 정해졌습니다. 데이터베이스의 포스팅 진행 계획은 먼저 데이터베이스 기초에 대한 내용을 다룬 뒤에 기초적인 SQL 사용법에 대한 내용을 다룹니다. 그 뒤에는 데이터베이스를 설계하는 방법에 대한 내용이나 심도 있는 SQL 사용법에 대한 내용을 다룰 예정입니다. 기회와 시간이 허락한다면 데이터베이스마다 가지고 있는 고유한 기능들에 대해서도 소개할 수 있으면 좋겠습니다. 앞으로 얼마 기간동안 다루게 될 SQL 실습에서는 Oracle Database를 사용할 것입니..
안녕하세요:) 손누누입니다. 오늘은 반응형 웹 사이트를 만들기 위한 핵심적인 4가지 내용을 여러분과 나누어 보고자 합니다. 현 시대에 우리는 웹 사이트를 컴퓨터로도 접속하고, 노트북으로도 접속합니다. 또는 타블릿이나 모바일(휴대폰)으로도 접속하여 웹 사이트를 살펴볼 수 있습니다. 그만큼 기기에 종류가 다양해지고, 우리들의 눈에 보이는 화면에 크기도 다양해졌다는 것을 경험할 수 있습니다. 이에 따라 각 크기 화면에 구애받지 않고 사용자가 경험을 할 수 있는 웹사이트가 요구되었고 그에 반응형 웹사이트가 만들어지게 됩니다. 반응형 웹 사이트 제작 시 핵심적인 4가지 기술 이 있습니다. 첫번째는 % 단위를 쓰는 가변크기 적용입니다. 웹사이트를 제작할 때 화면의 크기에 관계없이 자유롭게 늘어나거나 줄어들 수 있도..
Typescript 코드를 Linting 할 때 선택할 수 있는 두 가지 도구가 있습니다. 바로 TSLint와 ESLint. TSLint는 TypeScript에만 사용할 수 있는 린터이며, ESLint는 JavaScript와 TypeScript를 모두 지원합니다. 마이크로 소프트 타입스크립트 팀에서는 TSLint가 프로젝트 성능에 영향을 미칠 수 있는 몇 가지 아키텍처적인 문제를 발견하여 ESLint 사용을 권고하고 있습니다. ESLint 설정하기 먼저, ESLint 설정에 필요한 패키지들을 설치하도록 하겠습니다. yarn add eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin --dev * create-react-app을 사용하여 프..
Why So Serious? Just For Fun. No Fun No Gain 누누 컴퍼니 내부에서 네트워크가 아닌 다른 주제의 포스팅을 원하여 새로운 주제를 선정하는 중입니다. 아마 데이터 베이스나 크롤링에 관련된 주제로 정해질 것 같습니다. 네트워크에 대한 나머지 내용들은 제 블로그를 열게 되면 이어서 포스팅하거나 추후에 다시 포스팅하도록 하겠습니다. 이번 포스팅에서는 크롤링의 법적 문제에 대해 이야기해볼까 합니다. 4차 산업혁명 시대가 되면서 데이터의 가치는 더욱 높아졌습니다. 데이터를 이용하면 소비자의 행동을 분석하거나 시장 변동을 예측해내는 것도 가능하며 영상을 실시간으로 인식하여 사람을 구별하는 것도 가능합니다. 그 외에도 데이터를 이용한 사례들은 기술의 발전에 따라 무궁무진해지고 있습니다...