목록분류 전체보기 (104)
여행을 개발하다

1. Stack(스택) - 스택의 사전적인 정의는 '쌓아올림', '무더기'라는 뜻이며, 의미 그대로 자료를 계속 쌓아올라가는 방식으로 데이터를 임시 저장하는 자료구조를 의미한다. - 스택은 데이터의 입출입이 단 하나의 방향에서만 이루어진다. - 따라서, 가장 먼저 들어온 데이터가 가장 늦게 사용되고, 가장 나중에 들어온 데이터가 가장 먼저 사용되는 후입선출(Last In First Out) 방식의 자료구조이다. - 스택에 자료를 쌓아올리는 작업을 푸시(push), 스택에서 자료를 꺼내는 작업을 팝(pop)이라고 한다. - 스택의 상단을 탑(top), 하단을 (bottom)이라고 한다. ※ 대표적인 구현 방식 & 상황 예시 - 웹 브라우저 등에서 뒤로 가기 버튼을 누르면, 현재 페이지 이전으로 돌아간다(h..

Vue.js에서의 데이터 바인딩 방법에 대해 알아본다. 1. 데이터 바인딩(Data-Binding)이란? 바인딩(Binding)이란 묶는다는 의미로, 웹 프로그래밍에서는 UI를 통해 표시하고자 하는 데이터를 실제 데이터와 연결해 주는 프로세스를 의미한다. 말이 길어지니 조금 어렵게 느껴질 수 있는데, 아래 HTML을 같이 살펴보면서 이야기해 보자. 위 HTML 소스 안에는 id가 'vue'인 div 태그 안에 input 태그가 하나 있다. 그런데 개발자는 DB 단에서 혹은 사용자가 보고 싶은 데이터를 가져와서 input 태그에 표시해 주고 싶다. 이때, 사용자가 보고 싶은 데이터를 input 태그에 넣어주는 것, 즉 연결해 주는 것을 데이터 바인딩이라고 한다. 2. Vue.js에서의 데이터 바인딩 Vue..

그 와중에 react, vue.js 등의 기술 스택을 요하는 프로젝트들에 하나둘씩 늘어가고, 그곳에 속속 참여하게 되었다. 그만큼 신기술을 들여오는 회사가 많아진다는 것을 뼈로 느끼게 된 순간들이었다. 그렇다고 언제까지나 '저는 몰라서 못합니다. 그 기술은 다뤄본 적이 없거든요.'라는 말을 내뱉으며 발을 뺄 수는 없는 일이다. 회사는 성과를 내야 하는 곳이기에, 학교나 교육원같이 '배운다'라는 개념을 적용하는 것은 적절치 않다는 선배의 말이 떠오른다. 맞는 말이다. '배워서 하겠다'라는 건 너무 터무니없다. 회사에서는 마감 기간에 맞춰 당장의 아웃풋을 내야 하기 때문이다. 결국 실무에서 부딪히며 스스로 익혀야 하는데, 그 또한 해당 기술에 대한 '기초 지식'은 있어야 한다는 전제하에 가능한 이야기라고 생..

MariaDB를 사용하여 개인 프로젝트를 진행하다가, 이미 생성되어 있는 테이블에 컬럼을 추가해야 할 일이 생겼다. MariaDB도 컬럼을 추가하는 SQL은 일반적인 데이터베이스에 사용하는 DCL과 다를 바가 없다. ALTER TABLE 테이블명 ADD COLUMN 컬럼명 데이터타입 하지만 다른 DBMS(Oracle, MS-SQL...)처럼, 이미 생성되어 있는 테이블에 컬럼을 추가할 때는 기본적으로 가장 마지막 위치에 추가된다는 점. 이 말이 무엇이냐 하면... 가령 어떤 테이블에 A~C 컬럼이 있는데, D라는 신규 컬럼을 추가한다면 당연히 C 컬럼 뒤에 추가된다는 이야기다. 하지만 이미 추가된 컬럼들 사이에 신규 컬럼을 넣고 싶을 때가 분명 있었다. 이는 다른 DBMS에서도 마찬가지. MariaDB에..

Node.js의 내장모듈 중 'os'는 운영체제 및 관련 유틸리티에 대한 메서드와 프로퍼티 정보를 가지고 있다. 이 모듈을 사용하면 OS의 메모리, 네트워크 인터페이스 정보, 버전, 아키텍처 등에 관한 정보를 불러올 수 있다. 1. os 모듈에 대한 접근 require 함수를 통해 모듈을 import 한다. const os = require('os'); 2. 관련 메서드 ① os.version os의 커널 버전을 가져온다. console.log('os.version==>' + os.version); // Windows 10 Pro ② os.arch() Node.js가 컴파일된 os의 CPU 아키텍처 정보를 리턴한다. console.log('os.arch()==>' + os.arch()); // os.ar..

5개월간 진행했던 회사 프로젝트를 성공적으로 마쳤다. 종료 시점 기준 잔여 연차가 5.5개 정도였는데, 마침 소멸 기준이도 얼마 남지 않아 모두 사용하기로 했다. 휴식 기간 나 자신에 대한 보상은 비행기를 타는 것이기에, 올해 2월처럼 짧게 제주에 다녀오기로 했다 ㅎㅎㅎ 와 그런데 이게 웬걸~ 때마침 중장거리 노선 전용 & 최신 기종인 Boeing 787을 국내선에서 만날 수 있는 기회가 있었다. 최근 첫 운항을 시작한 에어프레미아(Air Premia)에서 국제선 취항에 앞서, 787을 김포(GMP)-제주(CJU) 노선에 투입하고 있었기 때문이다. 국내선에 787을 투입한 전례는 대한항공이 유일하다. 하지만 워낙 FCS인만큼 가격도 착하지 못해서 당시에 김포공항에서 뜨고 내리는 항공기를 보는 것만으로도 ..

Java의 Iterator 인터페이스에 대해 공부해보았다. Iterator를 우리 말로 번역하면 '반복자'로, 객체 지향 프로그래밍에서 배열과 같은 여러 개의 데이터의 집합으로 이루어진 자료구조를 순회하는 객체를 의미한다. 자바의 Iterator 인터페이스는 컬렉션 프레임워크에 저장된 요소들을 순회하여 읽어오는데 사용되는데, 어떤 컬렉션 프레임워크라도 읽어볼 수 있는 표준화된 방법을 제공한다. 물론, 대표적인 제어문인 for, while 문으로도 반복문을 얼마든지 가능하지만, Iterator는 '표준화된 방법을 제공'한다는 점에서 다형성을 구현하고자 했다. 그렇다면 컬렉션 프레임워크는 무엇일까? 1. Collection Framework(컬렉션 프레임워크)란? 프로그래밍을 할 때면, 우리는 일반적으로 발..

너무 습관적으로만 사용했던 HttpServletRequest 인터페이스에 대해 공부해보았다. 인터페이스명을 그대로 뜯어보면 Http + Servlet + Request인데, Http는 프로토콜, Request는 말 그대로 요청이다. Servlet은 익히 들어왔지만 이의 정확한 의미와 작동 원리는 무엇일까... 본격적으로 HttpServletRequest에 대해 이야기하기 전에 간단하게 정리를 해봤다. 1. Servlet 정확히 말하면 'Java Servlet'을 의미하는데, 자바를 사용하여 동적으로 웹 페이지를 만들어주는 서버 측 프로그램 혹은 사양을 의미한다. (참조 : 위키백과, 검색어 : 자바 서블릿) 일반적으로 불리는 웹 서버(Web Server)는 클라이언트의 요청에 정적인 페이지(Javascr..