ESNext는 다음 버전의 자바스크립트를 말합니다. 처음에 이 단어를 접했을 때는 "이건 뭐지?"라고 했었는데, 다음의 Javascript를 가리킨다니 어떻게 보면 재미난 용어인 것 같기도 합니다. ESNext의 정의 ESNext에 대한 명확한 정의는 Mozila의 문서에서 확인할 수 있습니다. 본문 내용을 해석해본다면, ESNext는 작성 시점에 다음 버전을 가리키는 역동적인 이름이다. ESNext 기능들은 제안이라고 부르는 것이 더 정확하다. 정의에 따라 사양이 아직 확정되지 않았기 때문에라고 설명되어 있습니다. 즉 ESNext는 단순히 신규 버전의 자바스크립트로 생각하기보다는 앞으로 발전할 자바스크립트를 통칭하는 단어라고 말할 수 있을 것 같습니다.
Github과 Jenkins 연동을 검색해서 하다 보니 불편해, 글로 필요한 부분만 정리해봅니다. 매번 신규로 CI/CD 환경을 구축하는 게 쉽지 않네요. 1. Github 토큰 발급받기 1.1 사용자 정보 메뉴 중 Settings 항목 선택 1.2 환경설정(Settings) 메뉴 중 Developer settings 항목 선택 - URL: https://github.com/settings/profile 1.3 개발자 설정(Developer settings) 메뉴 중 Personal access tokens 항목 선택 후 Generate new token 버튼 클릭 - URL: https://github.com/settings/apps 1.4 Generate token 버튼을 눌러 Github Acces..
앱 배포 환경 구축을 위해 젠킨스(Jenkins)를 처음부터 설치해서 사용하다 다음과 같은 상황을 문제를 확인했습니다. "Failed to connect to repository : Error performing git command: git ls-remote" Failed to connect to repository 문제 해결 방법 Github의 repository를 연결하려다 발생한 문제인데, 그냥 Git이 설치되지 않아 생긴 문제였네요.. Jenkins가 운영되는 서버에 "yum install git" 명령어를 사용해 git을 설치합니다. git을 설치하는 명령어는 운영체제마다 다르니 운영 환경을 확인 후 알맞는 설치 스크립트를 작성해서 사용해주세요.
정확한 어떤 이유인지는 알수 없지만 갑자기 Git push를 할 때 Invocation failed Unexpected end of file from server 메시지가 뜨면서 commit한 내용을 올릴 수 없었습니다. Invocation failed Unexpected end of file from server 문제 해결 방법 이 문제를 해결하는 방법은 stack overflow를 참고하였습니다. Invocation failed Unexpected end of file from server 에러가 발생하지 않게 하는 방법은 Git의 Use credential helper 옵션을 활성화 시키면 문제가 해결됩니다. 동일한 문제로 Git push를 하지 못하는 경우 위의 이미지 내용대로 git의 Use c..
얼마 전까지 문제없이 사용하던 DataGrip에서 갑자기 Communications link failure 메시지가 출력되면서 데이터 베이스에 접근하지 못하는 문제가 발생했습니다. Communications link failure 문제 해결 방법 이 문제를 해결하는 방법을 찾아보니 몇 가지가 있었는데 문제를 유일하게 해결했던 방법은 데이터베이스에 연결할 때 사용하는 드라이버 옵션을 바꾸는 방법이었습니다. YouTrack에 동일한 이슈와 해결 방법이 있어 문제를 해결 할 수 있었습니다. 기존에 사용하는 드라이버를 MySQL에서 > Amazon Aurora MySQL로 변경하면 Communications link failure 문제를 해결할 수 있습니다. TLS 프로토콜 옵션을 수정하면 문제를 해결 할 수 ..
오늘은 Axios를 사용해 파일 업로드 기능을 구현하는 방법에 대해 알아보겠습니다. 이전에 Axios 파일 다운로드 기능에 대한 글을 쓴 적이 있는데, 이번에는 그 후속 편으로 Axios로 파일을 업로드하는 방법을 코드로 확인해보겠습니다. Axios 파일 업로드 요청하기 axios({ headers: { "Content-Type": "multipart/form-data", }, url: "https://7942yongdae.tistory.com/file-upload", // 파일 업로드 요청 URL method: "POST", data: formData, }).then(...); Axios를 사용해서 파일을 업로드할 때 중요한 부분은 headers의 Content-Type, data입니다. 이 두 가지 ..
Enum은 Enumeration를 줄여서 사용하는 단어로 한국 말로는 열거형이라고 표현하는 단어입니다. 여기서 이야기하는 열거라는 단어는 `나열`되는 것들을 의미하는데, 프로그램에서는 특정한 특질이나 속성으로 분류해서 사용하는 값들을 나열할 때 쓰입니다. 간단히 말해 상수들을 나열해 놓은 것을 열거형(Enum)이라고 표현합니다. 열거(Enumeration) 개념 알아보기 일반적으로 프로그램을 개발할 때 상수(Constant)로 지정해서 사용하면 좋은 값들이 있습니다. 예를 들어 최대 값과 같이 값(리터럴) 자체가 의미를 가지고 있는 경우입니다. fun main() { val number = 10 validateNumber(number) if (number > 9) { // 사용하지 못하는 값을 전달 받은..
모든 프로그래밍이 배울 때 함수와 변수부터 시작하듯 코틀린을 배우는 방법도 첫 단추는 함수와 변수입니다. 코틀린으로 어떤 앱을 만들든 웹 서버를 만들든 함수와 변수는 가장 기초에 속하는 개념입니다. 오늘은 코틀린에서 정의된 함수와 변수의 기초 개념을 공부해보도록 하겠습니다. 앱을 만들어 보고 싶어 코틀린을 배우고 있는데 접한 지 얼마 되지 않아 많이 서투르고 어색하네요 Hello, world! 틀에 박힌 시작이기는 하지만 "Hello, world"를 출력하는 코드로 가볍게 코틀린을 알아보도록 하겠습니다. fun main(args: Array) { println("Hello, world") } 자바로 프로그래밍을 배우신 분이라면 뭔가 비슷한 형태의 코드라고 생각하실 수 도 있겠네요. 위에서 정의한 "Hel..
의외로 nodejs는 배우기 전에 설치 혹은 버전 때문에 문제가 되는 경우가 많습니다. 이번에는 NPM을 사용해 Nodejs 버전을 업데이트하는 방법을 알아보겠습니다. requires Node 10 or higher. Please update your version of Node. 간혹 Nodejs의 버전이 맞지 않아서 프로젝트를 만들거나 실행할 때 문제가 발생하곤 합니다. 이런 문구와 말이죠. npm 명령어를 사용해서 nodejs 버전 올리기 이미 nodejs를 설치해서 사용하고 있다면 nodejs의 버전을 올리는 방법은 어렵지 않습니다. n을 설치해서 nodejs 버전을 관리하면 됩니다. n은 nvm과 같이 nodejs 버전을 관리할 수 있게 해주는 도구 중에 하나로 nodejs 버전을 단일 혹은 여..
DataGrip에는 데이터 베이스의 테이블 DDL 정보를 손쉽게 특정 언어로 변환하는 기능이 있습니다. 바로 DataGrip의 Generate Code인데요. 예를 들어 기존 사용하는 데이터 베이스를 JPA를 이용해 사용하려고 할 때 일일이 직접 테이블 정보를 확인해서 @Entity 클래스 코드를 만들어야 하는 번거로움 덜어낼 수 있습니다. DataGrip의 Generate Code가 기본으로 제공하는 Generate POJOs.groovy 스크립트는 테이블 DDL을 자바 클래스 코드로의 변환을 도와줍니다. 간단하게 사용할 수 있는 기능이지만 조금 더 상세한 사용방법을 원하신다면, 공식 사이트의 Generate Code 기능 사용 방법을 확인해주세요. 코틀린 Data Class 스크립트 추가 하기 fea..
안드로이드 앱을 개발할 때 일반적으로 사용하는 기능 중 하나가 바로 findViewById()입니다. 특정 TextView의 문자 값을 변경하거나 이벤트를 처리할 때 등등 화면의 요소를 findViewById()로 찾아 제어합니다. val textView: TextView = findViewById(R.id.text_main) 이런 코드로 말이죠. 하나의 TextView 정도야 예제 코드처럼 쉽게 쓸 수 있지만 화면에서 관리해야 하는 요소가 늘어날수록 findViewById()는 부담스러울 정도로 늘어납니다. 이러한 부분을 조금 더 간결한 코드로 손쉽게 해결할 수 있는 방법이 데이터 바인딩입니다. 데이터 바인딩은 데이터와 화면을 연결 짓는 기술로 안드로이드 앱뿐만 아니라 화면과 관련된 기술들(WinFor..
자바에서는 객체를 문자화 시킬 때 toString()을 사용합니다. 대부분 사람들이 처음 toString()을 배울 때 단순한 출력문 함께 배우기 때문에 toString()을 인스턴스를 표현하는 @어쩌고의 문자 값 정도로 인지하지만 알고 보면 재미있는 녀석이 toString()입니다. toString()은 객체의 단순하게 보면 문자 값이지만, 객체의 입장에서 본다면 인스턴스화 된 자신을 문자로 표현할 수 있는 Object의 유산이에요. toString()을 잘 사용한다면 조금 더 재미있게 객체의 관점에서 객체를 바라볼 수 있어요. Object가 물려준 유산이 toString() 외에도 여러 가지가 있지만 오늘은 toString()에 대해서 이야기해보겠습니다. toString()은 어디에 사용될까? - 내..