일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BOJ
- C#
- leetcode
- Clone
- bash
- webpack
- scss
- JavaScript
- loop
- git
- var
- C++
- npm
- security
- 앙상블
- condition
- dotenv
- nginx
- vue.js
- type
- machine learning
- vuetify
- TypeScript
- AI
- property
- 보안
- Python
- VUE
- generic
- docker
- Today
- Total
목록전체 글 (160)
ice rabbit programming
이전에 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..
Apache Groovy는 Java에서 파생되어 파이썬, 루비 등의 특징을 더한 동적 OOP 언어이다. 그렇기 때문에 JVM 위에서 동작하며, 자바의 웬만한 함수들을 가져다가 쓸 수도 있다. 스크립트 자체를 바로 사용할 수도 있는 등의 장점이 있고, 자바에 익숙한 프로그래머들에게 많은 학습이 필요하지 않다는 점도 있다. 자세한 내용은 추후에 기회가 있다면.. 본인은 클라이언트 프로그램을 빌드할 때 groovy를 사용하고 있어서 종종 다루고 있는데, 여러 가지를 사용하고 있지만 이번 포스팅에서는 간단한 것으로 시작하려고 한다. OS 환경변수 사용하기 OS의 환경 변수를 가져오는 것은 이미 제공하는 메소드가 있고, 정말 간단하고 사용할 수 있다. def env = System.getenv() // 모든 환경..
OOP(Object Oriented Programming), 객체지향 패러다임은 문제를 해결하기 위한 계산을 객체(object)를 기본으로 수행하는 방법이다. 아마 학부 수업을 듣다 보면 real world의 개념을 가져오는 설명을 많이 들었을 것이다. 객체지향 이전에 많이 쓰이던 절차지향 프로그램은, 무엇을 수행한다는 것에 초점을 맞추고 진행하기 때문에, main 함수에서 실행 트랜잭션, 그리고 각 기능들로 이어지는 flow가 이어진다. 반면에 객체지향은 클래스 간의 상속 및 관계, 클래스 내의 멤버변수/멤버함수를 통해 프로그램 구조가 이루어진다. 객체는 클래스의 인스턴스이고, 하나의 개체라고 보면 된다. 가장 많이 예를 드는 것이 붕어빵 틀이 클래스이고, 그 틀로 찍어낸 붕어빵이 객체이다. 조금 더 ..
오늘 포스팅은 간단한 기능 팁에 관련한 글이다. 최근에 아이콘 이미지를 서버에 보내거나, groovy 빌드 시 로그를 남길 때 base64로 인코딩/디코딩 처리가 필요한 적이 있었다. base64는 문자 그대로 8비트 이진 데이터를 64진법으로 변환하는 인코딩 기법이다. 문자 코드에 구애받지 않는 ASCII 코드를 활용하여 데이터의 변조 없이 송수신함이 보장하는 인코딩이기에, 미디어나 전자 메일을 통한 데이터의 송수신 등에 많이 쓰인다. 대부분의 언어에서 내장 패키지로 base 64 인코딩/디코딩을 지원한다. 본인이 최근에 자바스크립트(와 bash도 처리하긴 했지만)로 변환을 처리했기 때문에 javascript의 메소드를 간단히 소개하겠다. const example = '{"myExample":"hi"}..