전체 글
-
하드코딩(Hard-coding)Study/개발 용어 2021. 1. 18. 11:57
하드코딩이란? 데이터를 코드 내부에 직접 입력하는 것. 기술적으로는 데이터가 실행 바이너리(exe 파일 등)에 합쳐져 있는 상태를 말한다. 나무위키(namu.wiki/w/%ED%95%98%EB%93%9C%EC%BD%94%EB%94%A9) 실무를 하다보면 하드코딩(Hard-coding)이란 이야기를 자주 듣는다. 하드코딩이란 데이터를 코드에 직접 입력하는 경우를 말한다. 예를 들어 많이 쓰는 코드인 문자열 출력이 그렇다. System.out.println("하드코딩이란?"); 자바 코드로 작성해 본 문자열 출력 코드다. 직접 문자열 "하드코딩이란?"을 코드에 삽입했다. 이와 같은 경우는 모듈화가 되지 않은 것으로 코드와 데이터가 달라붙어(?)있어 추후 유지보수가 어려울 수 있다. 또한 데이터가 직접적으로 ..
-
API (Application Programming Interface)Study/개발 용어 2021. 1. 15. 11:48
API란? API(Application Programming Interface)는 응용프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. API라는 말을 굉장히 많이 듣는다. 자바 백과사전인 자바 API도 있고, 카카오맵 같은 API도 있다. API를 사용해보았지만 API가 정확히 무슨 뜻인지는 몰라 알아보았다. API는 UI를 생각하면 편하다. UI는 User Interface의 약자로 사용자가 프로그램을 조작하기 위한 인터페이스다. API는 프로그램이 사용할 수 있는 인터페이스라고 생각하면 된다. 지난 프로젝트 당시 지도 앱 API를 통해 특정 지역의 특정 장소를 찾을 수 있게 하는 기능을 구현했는데, 이는 우리 웹 서비스에서 다음..
-
스레드 (Thread)Study/개발 용어 2021. 1. 15. 11:33
스레드란? 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 프로세스(prosess)는 알아도 스레드는 어렵다. 프로세스는 운영체제에서 프로그램이 실행될 때 흐름의 단위로 알고있다. 스레드란 프로세스 보다 작은 단위로 프로세스 내에서 실행되는 흐름의 단위라고 한다. 프로세스: 각각의 은행 지점 스레드: 은행 지점 하나에 속한 고객 창구 여러 개 즉, 이런 형태로 생각하면 개략적인 이해가 쉽다. (나무위키 인용) 스레드와 프로세스의 차이 그렇다면 프로세스보다 더 작은 단위의 흐름을 정의하는 용어가 왜 필요할까? 프로세스는 각각 독립적인 실행 흐름이다. 프로세스를 강제종료해도 다른 프로세스에는 영향이 없다. 그러나 한 프로세스 안의 여러개의 스레드는 연계되..
-
[Linux 실습] (2) Putty 사용해 SSH 접속하기Linux 2021. 1. 14. 15:15
Putty란? 원격으로 다른 컴퓨터를 제어할 수 있게 도와주는 프로그램이다. SSH 프로토콜을 이용해 접속하는 방식이 많이 쓰인다. 즉, PUTTY를 사용하면 지난 실습때 VirtualBOX에 설치한 리눅스를 윈도우 환경에서 제어할 수 있다. SSH뿐만 아니라 Telnet, Rlogin 의 방식으로도 Putty를 사용하면 원격 접속할 수 있다. SSH란? Secute Shell의 약자. 기존 Telnet보다 보안이 강화된 원격접속 및 제어 도구 Putty 사용법 Putty로 접속하기 위해서는 접속하고자 하는 OS에 SSH가 설치되어있어야 한다. 앞서 말했듯 Putty는 SSH (혹은 Telnet)을 이용해 원격 접속하는 방식이기 때문이다. 내가 사용하는 CentOS 및 RHEL의 리눅스 운영체제에서 SS..
-
왕초보 개발자, 첫 사내 기술 세미나 발표에 대한 반성개발일기 2021. 1. 14. 14:01
첫 사내 세미나, 개발자의 발표는 무엇이 달랐나 대학을 다니면서, 또 일을 하면서 '발표'를 하는 것은 낯설지 않은 일이 되었다. 특히 나의 경우 전 직장이 '말하기'와 떼놓을 수 없는 직장이기 때문에 발표란 낯설지 않은 것이었다. 남들에게 말하는 것을 어려워하는 사람들도 있지만, 나는 그런 부류의 사람은 아니라고 생각했다. 그러나 개발자의 발표는 달랐다. 기존에 해왔던 발표가 아는 것을 남들에게 전하고 소통하는 것이었다면 기술자의 발표는 좀 더 면밀하고 복잡하다. 기술에 대한 설명을 기술자 앞에서 해야하기 때문이다. 기술에 대한 이해는 물론 작동하는 구조, 이 기술을 어떻게 사용할지, 최근의 기술적 이슈는 무엇이 있는지까지 체크해야한다. 의외의 질문이 들어올 수도 있는데 그 질문이 내가 모르는 분야에 ..
-
프론트엔드 프레임워크 트렌드(Angular / React / Vue.js)Study 2021. 1. 13. 17:50
회사에서 사내 세미나 발표 준비하면서 만들었던 요약 자료 프론트엔드 프레임워크에 대해 더 깊이 알 수 있었다. 실제 Vue.js 예제를 몇 구문 작성하기도 하며 감각을 익혔다. Front-end 프레임워크 트렌드 Front-end 프레임워크 소개 프레임워크란? 애플리케이션 구조에 대한 가이드라인과 기반 코드를 제공하는 개발 툴 Front-end 프레임워크 사용자와 만나는 화면단인 Front-end 개발을 목적으로 하는 프레임워크 최근에는 웹이 복잡해지며 SPA 개발을 위한 프레임워크가 각광 받고 있다. JavaScript 프레임워크의 등장 모바일 / 웹의 발달로 화면에서 표현해야 하는 Front-end의 개발이 복잡해지며 JS를 이용한 프론트엔드 구성이 주목 받고 있다. 웹 규모가 커지며 JS 파일이 많..
-
데이터 바인딩 (단방향 바인딩, 양방향 바인딩)Study/개발 용어 2021. 1. 12. 15:46
Front-end 프레임워크에 대해 찾아보던 중 Angular / Vue.js가 양방향 데이터 바인딩을 제공한다는 사실을 알게 됐다. 웹 개발을 하며 바인딩이라는 용어를 자주 듣는데, 정확하게 설명하기가 어려워 다시 한 번 공부하며 포스팅하기로 했다. 데이터 바인딩이란? 데이터 바인딩 이란 두 데이터 혹은 정보의 소스를 모두 일치시키는 기법이다. 즉 화면에 보이는 데이터와 브라우저 메모리에 있는 데이터를 일치시키는 기법이다. 출처 : sungjk.github.io/2015/11/22/AngularJS(2).html 글로만 봐서는 감이 잡히지 않는다. 마침 Vue.js 실습을 하던 중 데이터 바인딩에 대한 실습을 하게 되어서 감을 잡았다 ! 사용자의 Input을 받는 웹 페이지의 경우, 사용자의 입력값이 ..
-
[Linux 실습] (1) VirtualBox에 CentOS8 설치Linux 2021. 1. 8. 17:25
버추얼박스(VirtualBox)에 리눅스 CentOS8을 설치하기 생활코딩 Linux를 통해 간단한 리눅스 명령어를 익혔다. 실제 Linux 실습을 하기 위해 환경을 설정해보자. https://opentutorials.org/course/2598 리눅스 - 생활코딩 수업소개 인터넷과 함께 웹이 폭발적으로 성장하면서 저렴한 운영체제에 대한 수요가 폭발적으로 증가했습니다. 클라우드 컴퓨터가 등장하면서 이제 컴퓨터는 필요할 때 사용하고, 필요 없을 opentutorials.org VirtualBox를 이용해 가상컴퓨터를 만들어 그 안에 리눅스 OS를 설치하는 방법을 이용하기로 했다. 내가 리눅스를 사용하는 목적은 데스크톱용이 아니라 SSH를 이용해 원격 서버에 접속하기 위함이다. 회사에서 사용하고 있는 리눅스..