아스키코드가 뭐에요? 


안녕하세요.
고코더 입니다.


ASCII 코드에 대해 알아봅니다. 아스키코드는 "American Standard Code for Information Interchange"의 약저입니다. 미국 정보 교환 표준 부호라고 번역 가능합니다. 아스키 코드는 7비트로 된 인코딩 부호 체계입니다. 128개의 부호로 영문 키보드에서 사용 가능한 모든 부호를 2바이트 이내로 사용 가능하게한 체계입니다. 52개의 영문 알파벳 대소문자, 10개의 숫자, 32개의 특수 문자, 공백 문자를 표현 가능합니다.


 1. 아스키 코드표


아래 코드에서 나타내는 단어 뜻입니다.

DEC - 10진법(Decimal)
HEX - 16진법
OCT - 8진법


아스키 코드를 표는 온라인에서 많이 참조하는 이재욱님이 정리한 표입니다.


 2. 아스키 변환 사이트 



아스키 표보다 이 사이트에서 즉각적으로 코드를 알아보세요





마무리 



아스키 코드란? 영문자 키보드가 표현하는 문자를 2비트로 나타내는 것 요즘은 별로 안씀


댓글을 달아 주세요


Framework란?


안녕하세요.
고코더 입니다.



오늘은 좀 더 넓은 범위에 개념을 써봅니다. 프레임워크란 무엇인가? 항상 들어온 이 단어의 뉘앙스는 잘 알겠지만 정리하기 참 어려운 말입니다. 프레임워크 없는 개발을 찾는게 더 어려운 시대가 왔습니다. 이 단어에 대해 한번 다양한 방면으로 설명을 해보겠습니다.



 1. 사전적 의미


"소프트웨어 어플리케이션이나 솔루션의 개발을 수월하게 하기 위해 소프트웨어의 구체적 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화된 형태로 제공하는 소프트웨어 환경"

"복잡한 문제를 해결하거나 서술하는데 사용하는 기본 개념 구조"

"특정한 목적에 사용되는 사고체계"

"어떤 일에 대한 판단이나 결정 따위를 위한 틀."


 2. 랄프 존슨(Ralph Johnson)이 정의한 프레임워크



"소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"


● 3. 프레임워크 비유


프레임워크는 개발을 편하게 해주는 도구입니다. 실생활에서도 우리의 삶을 편하게 해주는 도구들이 있습니다. 고코더가 방을 청소합니다. 먼지도 많고 쓰레기도 많네요. 하지만 집에 아무런 도구가 없습니다. 손으로 쓰레기를 줍고 먼지는 손바닥 날을 이용해서 모아 모아 청소를 하였습니다. 1시간이나 걸렸네요.


이번에는 전자제품 매장에가서 청소기를 사왔습니다. 이 제품은 먼지를 흡입하면서 동시에 물청소까지 해주는 제품입니다. 고코더는 청소기를 사용해 5분만에 청소가 완료되었습니다. 이처럼 프레임워크의 기본적인 개념은 어떤걸 해결하기 위해 빠르게 할 수 있도록 도와주는 기능입니다. 



 4. 프레임워크 장단점


장점

1. 효율적
- 어떤 프로그램을 개발 할때 뼈대부터 개발하는 경우는 거의 없습니다. 비싼 개발자들을 사용하여 기초부터 개발하는건 비용이 발생합니다. 이를 생산성이라고 합니다. 프레임워크는 이미 만들어진 코드를 사용하게 하여 시간과 비용을 아낄 수 있습니다.

2. 완성도
- 현업에서 자주 사용하는 함수를 직접 개발하는 경우는 결국 나중에는 유지보수 대상이 됩니다. 오래동안 쓸 수 있는 함수를 만드는건 쉽지가 않죠. 하지만 프레임워크에서 제공하는 기능들은 검증된 코드입니다. 이를 사용함으로 오류가 적은 품질을 살릴 수 있습니다.

3. 유지보수 
- 프레임워크를 사용하면 다른 회사에서 같은 프레임워크로 다른 시스템을 개발해왔다면 쉽게 적응할 수 있습니다. 현업에서 느끼는 가장 큰 장점입니다. 물런 프레임워크를 어떻게 쓰고 있냐에 따라 적응해야하는 숙제는 있습니다.

4. 확장성
- 새로운 이슈나 기능이 업데이트 되고 이를 사용할 수 있습니다. 확장성으로 인해 업데이트된 기능을 통해 프로그램의 품질을 끌어 올릴 수 있습니다.

단점

1. 학습 필요
- 특정 프로그램 언어를 배우고 해당 프레임워크 사용법과 철학을 익혀야 하는 학습이 필요로 합니다. 현업에서 바쁜 개발자에게 학습을 시키는건 좀 부담스러운 면이 있습니다. 

2. 제약사항
- 프레임워크는 사용법이 정해져 있습니다. 예외적인 소스를 작성할때는 조금 복잡해지는 문제가 있습니다. 하지만 프레임워크 자체가 제약사항을 따르기 위한 것입니다. 청소기로 빨래를 할 수는 있지만 추천하지 않는 방법처럼요.



마무리


프레임워크에게 감사를!


댓글을 달아 주세요


커맨드 라인 인터페이스란?


안녕하세요
고코더 입니다.


CLI는 Command Line Interface 줄임말 입니다.  명령줄 인터페이스라는 이름으로 번역이 가능합니다.
사용자는 커맨드 즉 문자열을 통해 컴퓨터에게 명령을 합니다. 컴퓨터의 응답도 역시 문자열로 출력해주는 방식을 말합니다.



 1. CLI 실행


운영체제에서는 기본적으로 CLI를 제공하고 있습니다.
대표적적으로는 윈도우에서 사용하는 명령 프롬프트(CMD)가 있습니다. 


맥과 리눅스에서는 Terminal 환경이 CLI 입니다. 




 2. CLI 활용


CLI에서는 생각보다. 사용할 거리가 많습니다.
파일이나 폴더를 관리 할 수도 있고
 
파워쉘과 같은 스크립트 언어를 사용하기도 하고
REPL 환경을 사용할 수도 있습니다.


마무리


CLI 환경은 중독입니다.


댓글을 달아 주세요


간단하게 테스트하고 출력하는 커맨드 환경


안녕하세요.
고코더 입니다


 1. 오늘은 REPL 이라는 단어에 대해 알아보려고 합니다.
코딩을 공부하다보면 많이 보이는 단어이지만 그냥 무심히 지나치는 경우가 많습니다.
Read Eval Print Loop 이라는 단어의 줄임말 입니다.

입력(read)
평가(eval)
출력(print) 
반복(loop)

기본적으로 REPL은 명령줄 인터페이스인 CLI위에서 작동 됩니다.  
윈도우에서는 명령프롬프트(CMD), 파워쉘(PowerShell)
리눅스와 맥에서는 터미널(Terminal) 환경에서 사용이 가능합니다.



REPL을 사용하는 이유


 2. 컴파일 과정 없이 즉석에서 코드를 입력해 결과를 바로 알 수 있는 방식을 말합니다. 
개발시에 코드를 즉시 테스트 함으로써 편리한 소스 코드를 디버깅 할 수 있습니다.

투수가 마운드에서 경기를 시작하기전에 몸풀기 투구 처럼 간단하게 시도하고 결과가 반영되지 않는 연습게임처럼 이용이 가능합니다.
간단하게 테스트하는 용도로 즉석에서 결과 값을 얻을 수 있습니다. 

우리가 자주 사용하는 크롬 브라우저에서 F12를 누르면 나타나는 실행되는 개발자 모드에서 console 입력창은 대표적인 REPL 환경이 입니다.
소스를 수정하지 않고 재 실행하지 않아도 결과를 바로 테스트 할 수 있습니다. 
화면에서는 제 홈페이지에 로고를 숨겨보았습니다. 테스트 결과 값을 서버에 저장되지 않고 로컬 환경에서 즉시 얻을 수 있습니다.



마무리


REPL의 목적인 개발 편의성을 제공함으로 개발 시간을 단축시킵니다. 서버 자원을 최소한으로 사용 가능하도록 도와줍니다. 





댓글을 달아 주세요


동기식 비동기식 뭐가 다를까?


안녕하세요.
고코더 입니다.



동기, 비동기 단어 자체가 영어로 보면 머리속에 들어오는데 번역된 한글로 보면 조금 헷갈린 구석이 있습니다.

동기(synchronous)
    - 응답을 받아야만 다음 동작을 실행 
비동기는 (Asynchronous)
    - 응답에 상관 없이 바로 다음 프로세스를 진행



 1. 동기방식


우리가 많이 사용하는 ajax는 보통 동기식을 많이 사용합니다. 해당 데이터를 모두 가져와서 다음 프로세스에서 함께 사용하는 경우가 많기 때문입니다. 동기는 하수도관이 하나 입니다. 물길이 하나여서 하나가 다 된 다음 다음 프로스세를 순차적으로 실행합니다. 프로세스적 절차가 중요한 사이트 관리자 페이지라던가 금융 업무와 같은 곳에서는 동기식인 경우가 많습니다.

특징
    - 한번에 하나씩 처리하면서 내려간다
    - 순차적으로 처리하기에 비동기에 비해 느리게 결과 값이 나타난다.
    - 디버깅이 쉽다




 2. 비동기 


비동기는 다양한 작업이 동시에 일어납니다. 예를 들면 메인화면이 노출되는데 실시간 채팅창은 로딩 된데로 뜨고 게시판 미리보기도 로딩되는데로 뜹니다. 그리고 로그인창이 오랫동안 로딩 하다 404에러가 난다면 다른 프로세스와 상관없이 나중에 오류가 난 박스대로 보여집니다. 이처럼 비동기는 우리가 많이 보는 사이트에 모습입니다.

특징
    - 여러가지 로직이 동시에 처리 된다.
    - 매우 빠르게 결과가 도출된다.
    - 다른 프로세스의 결과 값을 받아 쓸때 이를 조절해야 한다.




마무리


번역 자체가 이상해서 항상 헷갈립니다.
동기가 기다려서 순차적으로 실행하는 단어입니다!!
"동시시 시작하기 위해 기다린다" 이렇게 외우세요!



댓글을 달아 주세요