일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- nginx
- 앙상블
- machine learning
- webpack
- leetcode
- npm
- loop
- docker
- git
- generic
- C#
- AI
- dotenv
- var
- condition
- VUE
- security
- Clone
- scss
- TypeScript
- JavaScript
- C++
- Python
- property
- vuetify
- 보안
- bash
- vue.js
- BOJ
- type
- Today
- Total
목록분류 전체보기 (163)
ice rabbit programming
이전 글에서 nginx의 proxy_pass에 대해서 포스팅했었다. 이번 포스팅에서는 reverse proxy할 때, 인증을 거칠 수 있는 auth_request에 관해 포스팅하려 한다. 대개의 웹 서비스는 인증/권한 관리 시스템을 갖추고 있고, 허용된 요청에 한해서만 정상적인 response를 반환한다. 예를 들어 로그인이 되어 있지 않은 사용자는, 로그인이 필요한 페이지에 접근 시에 로그인 페이지로 redirect 하는 경우가 있다. API 레벨이나 프론트엔드에서도 각각 처리가 필요하지만, 기본적으로 nginx에서 일차적으로 걸러주는 것이 필요하다. 이럴 때 auth_request를 사용할 수 있다. auth_request는 말 그대로 인증이 유효한지를 보내는 것인데, token을 사용한다면 이 to..
nginx는 아파치와 더불어 굉장히 널리 쓰이는 웹 서버이다. 2021년 기준으로 아파치가 약 41.48%로 1위, nginx가 약 26.41%로 2위의 점유율을 보이고 있다. 2000년대~2010년대 초반까지만 해도 아파치가 거의 60%에 육박하거나 상회하는 수준이었다는 것을 생각하면 nginx의 성장세가 무섭다고 할 수 있다. 어쨌거나 웹 서버는 HTTP 서버라고도 할 수 있는데, 클라이언트의 요청에 따라 서버 쪽에서 처리하여 정보를 제공하는 소프트웨어라고 할 수 있다. nginx가 제공하는 기능이 여러가지 있는데, 그 중에 이번 포스팅에서는 reverse proxy를 간단하게 다루려고 한다. reverse proxy Flask나 Express.js 등 자체적으로 serving을 지원하는 프레임워크를..
차원 축소(Dimensionality Reduction)는 변수가 매우 많을 때 데이터를 압축하는 컨셉이다. 즉, 데이터를 압축하고 학습 속도를 개선하기 위함이다. 차원이 높을 때 발생하는 현상 중 하나로는 차원의 저주가 있다. 차원이 높을수록 학습에 요구되는 데이터의 개수가 증가되는데, 만일 고차원일 때 적은 개수의 데이터로 표현하게 되면 과적합(Overfitting)이 발생할 수 있다. 이러한 차원의 저주 발생을 방지하고, 학습 속도 및 성능 향상을 위해 차원 축소가 사용된다. 아래 두 가지 방법이 있다. 주성분 분석(Principle Component Analysis) PCA는 고차원 데이터를 가장 잘 설명할 수 있는 주성분을 찾는 방식이다. 즉, 차원을 축소하면서도 원본 데이터의 특징을 가지고 있..
이전에 Python에서 linter를 적용하는 포스팅을 했었다. 이번 포스팅은 Vue.js에서 eslint를 적용해보겠다. python만큼은 아니라고 생각하지만, vue도 스타일 가이드(공식 스타일 가이드)가 꽤나 깐깐하다. 문법적으로 틀린 것이 아니라도, 강제로 ESLint를 끄지 않는 이상 필수적인 스타일 가이드를 위반하면 실행 단계에서 오류가 발생한다. 공식 가이드를 보면, 필수적인 것과 추천해주는 것 등이 있다. 어떻게 정할지는 개인 혹은 팀마다 자유이나, 최대한 일관적으로 유지하면 좋고 또 자동으로 수정해주는 부분이 많기 때문에 본인은 recommended를 사용하였다. prettier를 부가적으로 설치해서 사용할 수도 있지만, VS Code에서는 ESLint가 자동으로 formmating까지 ..
이전 글들에서 회귀, 분류 등 지도 학습을 다루었었다. 이번 포스팅부터는 정답이 없는 데이터가 주어지고, 숨겨진 구조를 파악하는 비지도 학습(Unsupervised Learning)에 대해서 다룰 것이다. 이번 글은 군집, 클러스터링에 대해 다룰 것이다. 클러스터링은 크게 두 가지로 나눌 수 있다. 하드 클러스터링 : 특정 개체가 집단에 포함되는지 여부(포함or미포함) ex) K-means Clustering 소프트 클러스터링 : 특정 개체가 얼마나 포함되는지 속하는 정도로 표현 ex) GMM 클러스터링의 목표는 군집 간 유사성 최소화, 군집 내 유사성 최대화라고 할 수 있다. 즉, 다른 군집 간 데이터끼니를 최대한 서로 비슷하지 않게 하고 같은 군집 내의 데이터끼리는 서로 비슷하게 하는 것이 목적이다...
현재 개발 중인 팀에서는 Git의 Pull Request를 활용한 코드 리뷰가 활성화 되어 있고, 리팩토링 요청/진행 또한 심심치 않게 일어난다. 아직 처음 속해본 개발 조직이기 때문에 다른 팀의 케이스를 직접 경험해본 적은 없으나, 개발자들 간에 코드 리뷰가 이루어지지 않거나, 일정에 쫓긴 나머지 리팩토링이 진행되지 않는 경우도 몇 번 들었다. 본인은 만 1년 간의 서비스 개발 경험과 그간 읽어본 책들로 리팩토링의 효과가 꽤 크다고 생각을 하는데, 주니어의 관점으로 이를 적어볼까 한다. 좋은 코드 좋은 코드란 무엇일까? 사람마다 정의도 많을 것이고, 중요하게 보는 것에 따라서 우선 순위도 다를 것이다. 본인도 여러 가지가 많다고 생각하지만 한 마디로 표현하자면 '기능의 개선/변경/추가/제거가 쉽게 이루..
최근 Jenkins에서 bash 파일을 실행하고, 그 결과 값을 이용할 필요가 있었다. 값 반환하기(기본) 값 반환(return value)은 특이하게도 echo, printf 등 stdout 출력으로 할 수 있었다(참고 : echo와 printf는 거의 동일하나, echo는 끝에 개행문자(\n)가 자동으로 붙고, printf가 좀 더 다양한 표현을 쓸 수 있다). RESULT=$(curl -X GET https://my_url) # curl 결과를 RESULT에 담음 echo "${RESULT}" # RESULT stdout에 담아 반환 모든 echo가 반환되는 이슈 문제는 보통 스크립트 파일을 작성할 때에는, 진행 과정 및 정보를 알고자 로그를 출력으로 남기는 일이 잦다는 것이다(return valu..
요즘 Github를 사용할 때 Logon failed, use ctrl+c to cancel basic credential prompt. 라는 문구가 계속 뜨면서 ssh를 통한 로그인을 필요로 하길래, 불편해도 뭔가 바뀌었나 싶어서 그대로 쓰고 있었다. 그런데 github에서 패스워드를 이용한 로그인을 8월부터 제공하지 않는다고 이메일이 왔다(관련 참고 : relz.tistory.com/36 ). token 기반으로 바꾸라는 메일을 보고 문득 이전에 token을 발급해서 썼었고 그 때에는 별다른 로그인 과정을 거치지 않았던 기억이 나서 검색을 해보니 로컬의 git과 github의 버전이 맞지 않는 이슈였다. git 설치가 되어있지 않다면 git 홈페이지에서 다운을 받아 설치하면 된다. git update..