INSERT AUTO_INCREMENT MySQL에서는 순차적으로 증가하는 숫자 값을 가져오기 위해 AUTO_INCREMENT라는 기능을 제공한다. AUTO_INCREMENT는 테이블의 칼럼에 부여하는 옵션 형태로 사용하므로 자동 증가 기능은 하나의 테이블에서만 순차적으로 증가하게 된다. INSERT 쿼리에서 ID를 직접 지정하는 경우 CREATE TABLE sample_tbl ( member_id INT NOT NULL AUTO_INCREMENT, member_name VARCHAR(30) NOT NULL, PRIMARY KEY (member_id) ) ENGINE=INNODB; INSERT INTO sample_tbl (member_name) VALUES ('Georgi Fellona'..
참고 Vuex Tutorial - The Net Ninja를 보고 정리한 글입니다. Vuex 란? 한마디로 Vue.js에서 모든 상태를 한 곳에서 관리해 주는 친구입니다. 중앙에 Store라는 상태 저장소가 있고, 이 Store는 모든 애플리케이션의 컴포넌트에서 접근이 가능합니다. Vuex를 사용한다면 Vue.js만 사용한다면, 보통 여러 컴포넌트 간의 관계는 위와 같은 트리 구조일 것입니다. 만약 4번 컴포넌트에서 이벤트가 발생해서 다른 컴포넌트들의 상태에 변화를 주어야 한다면, 이벤트는 부모를 타고 올라가 Root 컴포넌트까지 전달된 다음, 다시 props를 통해 다른 하위 컴포넌트들로 전달되어야 하겠죠. 하지만 Vuex를 사용한다면 중앙 저장소인 Store가 있고, 특정 컴포넌트에서 상태를 변경한다..
애자일하게 성장하기 얼마 전에 우아한테크코스 2기 분들을 만나서 발표했던 내용을 조금 다듬어서 글로 한번 남겨보고자 한다. 개인적으로 발표를 준비하면서도 지난 1년 간의 경험과 성장하려고 고군분투했던 기억들을 정리하는 계기가 되었다. 그리고 앞으로 내가 집중해서 나아가야 할 방향성을 잡는 데에도 상기하고 있으면 좋을 것 같은 내용이어서 더더욱 글로 한번 정리하고자 한다. 어떻게 공부해야 하나요? 어떤 분야든 다 그렇겠지만 특히나 새로운 기술의 습득을 늘 짐처럼 안고 살아가야 하는 개발자라면, 생각을 안할 수가 없는 질문이다. 어떻게 공부해야 하나요? 라는 질문은 어떻게 성장해야 하나요? 라는 질문으로 바꿔볼 수 있고, 이는 다시 성장하려면 어떻게 해야 하나요? 라는 질문으로 던져볼 수 있다. 성장에 대한..
개요 애플리케이션의 코드를 튜닝해서 성능을 2배 개선한다는 것은 쉽지 않은 일이지만, DBMS에서는 몇 십배, 몇 백배의 성능 향상이 흔한 일이다. 그만큼 SQL 쿼리를 튜닝하는 법을 아는 것이 중요하다. 쿼리의 결과를 예측하는 것은 물론, 옵티마이저의 내부적인 처리 방식도 어느 정도 숙지할 필요가 있다. 쿼리와 연관된 시스템 설정 sql_mode sql_mode라는 시스템 설정에는 여러 개의 값이 동시에 설정될 수 있는데, 몇 개만 보면 다음과 같다. STRICT_ALL_TABLES : 일반적인 MySQL에서는 저장하려는 값의 길이가 칼럼 길이를 넘어가더라도 경고만 발생시킨 후 초과한 부분을 자르고 저장한다. 이 옵션을 주면 경고가 아닌 에러를 발생시켜 칼럼 길이를 넘는 데이터를 저장하는 것을 막을 수..
jenkins-rest CI 관리 도구인 젠킨스를 사용하다 보면 직접 들어가서 사용할 수도 있지만, 젠킨스 API를 통해 코드로 작업할 필요가 생길 수도 있는데요. Jenkins API를 좀 더 쉽게 접근할 수 있는 jenkins-rest 라이브러리를 소개하겠습니다. Jenkins API API 문서 젠킨스 API에 관해서는 젠킨스 주소 뒤에 /api를 붙이면 해당 문서를 볼 수 있는데요, XML, JSON, Python 이 세 가지 형태로 제공한다고 합니다. 보시면 아시겠지만 그닥 사용자 친화적이지는 않습니다. ㅠㅠ 그래서 한 번 jenkins-rest를 통해 자바 코드로 API를 사용해보도록 하겠습니다. 토큰 발급하기 라이브러리를 사용해보기 전에, 먼저 젠킨스에 접근할 수 있는 인증 토큰을 발급받아야..