※ 요약


C++은 현재 표준 작업이 C++17까지 진행된 상태다. 그런데 컴파일러들마다 최신 문법 지원 상황이 제각각인데, msvc(visual studio)와 gcc 컴파일러를 사용하는 필자는 최신 버전이 나오거나 최신 문법으로 코드를 작성할때 지원 현황을 살펴보고는 한다. 독자들에게도 소개하니 필요할때마다 참고하기 바란다. 참고로 이번에 소개하는 문서는 최신 현황보다 조금 늦어질 수도 있다는 것을 염두해 두기 바란다.


최신 버전의 문법을 테스트해보고 싶다면 최신 버전의 컴파일러를 설치하는 것도 방법이지만 온라인 컴파일러를 이용하면 더더욱 좋으니 단순히 최신 문법 테스트라면 온라인 컴파일러를 이용해보기 바란다.



※ 설명


아래는 사이트에 접속하면 볼 수 있는 화면이다. 가장 최신인 C++17부터 나열되어 있으며, gcc와 Clang이 가장 많은 스펙(features)을 지원하는 것을 알 수 있다.



다음은 C++14다. 필자가 가장 자주 사용하는 Visual Studio(msvc)는 14.x은 되어야 거의 모든 것을 지원하는 것을 알 수 있다. 참고로 msvc 14는 Visual Studio 2015다.


마지막으로 C++11이다. C++11은 C++0x라고도 불렸었는데, 그 이유는 2010년이 오기 전인 01년~09년 사이에 표준 작업을 완료할 줄 알고 0x라고 불렀다가 2011년에 표준 작업이 완료되어 현재는 C++11로 불린다.





※ 요약


이번 포스트에서는 파이썬 다운로드 및 설치 방법에 대해 알아보도록 하겠다. 다운로드는 현재 날짜 기준으로 최신버전인 3.6 버전을 다운로드 받을 것이다.


※ 다운로드 링크


https://www.python.org/downloads/



※ 다운로드 및 설치 방법


상기의 다운로드 링크로 이동하면 아래와 같은 화면을 볼 수가 있고 원하는 버전을 다운받을 수가 있는데, 개인적으로 3.x 버전을 추천한다. 이유는 파이썬2는 2020년까지 지원 예정이며, 지원하는 라이브러리 또한 16년 5월을 기점으로 파이썬3가 더 많은 것으로 알고 있기 때문이다. 물론 파이썬2를 사용하는 곳이 아직 많으니 원한다면 둘 다 설치해도 상관없다.



다운받은 파일을 실행하면 아래와 같은 화면이 나온다. Add Python 3.6 to PATH에 체크한뒤 Install Now버튼을 누르도록 하자. 설치 장소를 바꾸고 싶다면 Customize Installation을 선택하면 된다.


설치가 진행중이다.


설치가 금방 완료되었다. Close버튼을 눌러 창을 닫아주자.


설치는 무사히 완료되었고, 테스트겸 콘솔과 Shell에 Hello World를 출력해보았다.



※ 요약

2017년 새해가 밝았다. 새해에 큰 의미를 두는 성격은 아닌지라 평소처럼 리눅스나 엑셀, 윈도우 등을 포스팅할까 했지만 마땅히 올릴 글도 생각나지 않고 마침 적당한 글이 있어서 포스팅해볼까 한다. 제목하야 "2017년에 배워야할 언어 및 프레임워크와 개발툴". 새해를 맞이하는 개발자들에게 꼭 맞는 글이 아닌가? 그렇다고 맹신하지는 말고 재미로 보기 바라며, 새로운 언어를 배워볼까 하는 이들에게 가벼운 이정표가 됐으면 좋겠다. 아쉬운게 있다면 C++이 없다는게 아쉽더라, 필자는 모던 C++을 주로 하고 보조로 파이썬을 하는데 왜 C++이 없을까..ㅠ 최근 활발히 표준 작업도 하고 있는데 말이다. 그나마 파이썬이라도 있어서 위안이 된다.



※ 설명

상기의 사이트 링크로 이동하면 관련 내용을 볼 수 있다. 적지 않은 내용이기에 이 포스트에서는 언어에 대한 것만 다룰 것이며, 영문이기 때문에 번역이 필요하다면 구글 번역을 이용하기 바란다. 번역시 구글 번역기의 소소한 팁?을 이용하면 사이트 전체를 통으로 번역할 수 있으니 참고 바란다.


아래는 사이트 내용중 언어에 해당하는 영역만 캡쳐한 화면이다. 자바스크립트와 타입스크립트, C# 7.0(최근 마소 행보 덕에 버전업이 빠르다. 물론 필자는 C#에는 관심이 없지만), 파이썬, 루비, PHP, 자바, 스위프트 등이 나열되어 있는데 C++이 없다. C는 당연히 없어도 되지만 C++이 없다니.. 서글퍼진다. 아무튼 필자는 C++ 외에 관심 있는 언어는 파이썬이다. 새로운 자작 프로그램을 구상중인데, 파이썬이 딱이기 때문이다! 아무튼 언어 영역만 캡쳐 했으며 언어 외에 프론트엔드, 백엔드, 데이터베이스, 개발툴에 대한 내용도 있으니 관심이 있다면 해당 링크로 이동하여 봐보기 바란다.






※ 요약

Embarcadero社에서 판매하는 소프트웨어인 C++ Builder 10.1 Berlin STARTER EDITION과 Delphi 10.1 Berlin STARTER EDITION가 Update2 이후 무료버전으로 배포되어 소개하고자 포스팅한다. 무료버전으로 풀기전 가격은 각각 $238.70과 $310.20. 관심있는 독자는 다운받아 설치해보기 바란다. 사실 필자는 별관심이 없어 다운받지는 않았다. 필자는 Visual Studio메모장(노트패드)만 있으면 되기 때문이다.




※ 다운로드 방법

상기의 링크로 접속하면 아래와 같은 화면이 나온다. 이름과 이메일 등 간단한 정보를 입력하여 가입하고 나면 다운로드가 가능하다.




※ 요약

필자가 자주 이용하는 cpp 레퍼런스 사이트를 소개하고자 한다. 이 사이트는 필자가 C++11을 공부하기 위해 찾다가 알게된 사이트인데 정리가 잘 되어 있고 설명 또한 잘 되어 있어 자주 찾는 사이트중 하나다. C++11 이후에 추가/확장된 최신 C++14, C++17에 대해서도 정보를 제공하며 C 레퍼런스도 있으므로 유용하게 이용할 수 있다.


※ 사이트 주소


※ 설명

아래는 사이트에 접속한 화면이다. 필자가 자주 찾는 컨테이너들부터 string, 유틸리티, 알고리즘, 정규식, 이터레이터, C++17에 추가된 Filesystem까지 엄청나게 다양한 것들의 레퍼런스 정보를 제공한다.



아래는 컨테이너 개요 중 일부 화면이다. 각 컨테이너들의 멤버 함수들이 있는데, C++03버전과 C++11버전을 색으로 구분하여 가독성이 좋다.


아래는 C++17에 추가된 Filesystem 라이브러리다. boost에 있던 filesystem이 표준이 되면서 C++17에 추가되었는데, 개인적으로 엄청 유용하게 사용하던 라이브러리 중 하나인데 이제라도 표준이 되어 다행이다.



※ 요약

ASCII(아스키)는 American Standard Code for Information Interchange의 약자로써, ANSI(미국표준협회)에서 만든 표준 코드 체계다. ASCII Code를 만든 이유는, 컴퓨터는 1과 0 이 두 수로 밖에 연산을 할 수 없으므로 문자도 숫자로 기억하는데 이때, 어떤 수를 어떤 문자를 대응시키는가에 따라 다양한 인코딩 방식이 있고 표준없이 여러 인코딩 방식을 사용하다보니 호환 등의 여러 문제가 발생하여 만든게 ASCII Code다. 물론 처음 만들 때 영어권 애들이 만든데다가 다른 나라 문자는 신경 쓸 필요(혹은 여력)가 없어 영 소문자, 영 대문자, 숫자 등만 표현이 가능한데 요즘 같은 국제화 시대에는 모든 언어를 표현해야 하므로 후에 보완해서 나온 코드 체계가 유니코드다.


ASCII Code(아스키 코드)는 0번부터 127번까지만 사용한다. 127번 이후 코드를 사용했던 적도 있었지만 이는 표준이 아니며 운영체제마다 다른 문자(코드)를 배치했기 때문에 호환이 되지 않는다. 윈도우즈 운영체제는 현재 128번부터 255번 사이에 포함된 문자를 출력하려는 시도에 대해 ?(물음표)를 출력해서 사용하면 안된다는 것을 알려준다.


※ 제어 문자 0~31, 127

아스키 코드 테이블에서 처음 0부터 32까지와 127은 제어 문자라고 해서 화면에 출력하거나 인쇄 할 수 없으며, 프린터와 같은 주변 장치를 제어하거나 전송 제어용으로 사용된다.

DECOCTHEXBINSymbolHTML NumberHTML NameDescription
00000000000000NUL� Null char
10010100000001SOH Start of Heading
20020200000010STX Start of Text
30030300000011ETX End of Text
40040400000100EOT End of Transmission
50050500000101ENQ Enquiry
60060600000110ACK Acknowledgment
70070700000111BEL Bell
80100800001000BS Back Space
90110900001001HT	 Horizontal Tab
100120A00001010LF
 Line Feed
110130B00001011VT Vertical Tab
120140C00001100FF Form Feed
130150D00001101CR
 Carriage Return
140160E00001110SO Shift Out / X-On
150170F00001111SI Shift In / X-Off
160201000010000DLE Data Line Escape
170211100010001DC1 Device Control 1 (oft. XON)
180221200010010DC2 Device Control 2
190231300010011DC3 Device Control 3 (oft. XOFF)
200241400010100DC4 Device Control 4
210251500010101NAK Negative Acknowledgement
220261600010110SYN Synchronous Idle
230271700010111ETB End of Transmit Block
240301800011000CAN Cancel
250311900011001EM End of Medium
260321A00011010SUB Substitute
270331B00011011ESC Escape
280341C00011100FS File Separator
290351D00011101GS Group Separator
300361E00011110RS Record Separator
310371F00011111US Unit Separator

127

177

7F

01111111




 

Delete



※ 출력 가능한 문자 32~126

32부터 126번 까지는 구두점, 숫자, 영 대문자, 영 소문자 등 출력 가능한 문자 및 문장 부호를 나타내며, 이 문자들은 키보드에서 대부분 찾을 수 있다.

DECOCTHEXBINSymbolHTML NumberHTML NameDescription
320402000100000   Space
330412100100001!! Exclamation mark
340422200100010"""Double quotes (or speech marks)
350432300100011## Number
360442400100100$$ Dollar
370452500100101%% Procenttecken
380462600100110&&&Ampersand
390472700100111'' Single quote
400502800101000(( Open parenthesis (or open bracket)
410512900101001)) Close parenthesis (or close bracket)
420522A00101010** Asterisk
430532B00101011++ Plus
440542C00101100,, Comma
450552D00101101-- Hyphen
460562E00101110.. Period, dot or full stop
470572F00101111// Slash or divide
48060300011000000 Zero
49061310011000111 One
50062320011001022 Two
51063330011001133 Three
52064340011010044 Four
53065350011010155 Five
54066360011011066 Six
55067370011011177 Seven
56070380011100088 Eight
57071390011100199 Nine
580723A00111010:: Colon
590733B00111011;&#59; Semicolon
600743C00111100<&#60;&lt;Less than (or open angled bracket)
610753D00111101=&#61; Equals
620763E00111110>&#62;&gt;Greater than (or close angled bracket)
630773F00111111?&#63; Question mark
641004001000000@&#64; At symbol
651014101000001A&#65; Uppercase A
661024201000010B&#66; Uppercase B
671034301000011C&#67; Uppercase C
681044401000100D&#68; Uppercase D
691054501000101E&#69; Uppercase E
701064601000110F&#70; Uppercase F
711074701000111G&#71; Uppercase G
721104801001000H&#72; Uppercase H
731114901001001I&#73; Uppercase I
741124A01001010J&#74; Uppercase J
751134B01001011K&#75; Uppercase K
761144C01001100L&#76; Uppercase L
771154D01001101M&#77; Uppercase M
781164E01001110N&#78; Uppercase N
791174F01001111O&#79; Uppercase O
801205001010000P&#80; Uppercase P
811215101010001Q&#81; Uppercase Q
821225201010010R&#82; Uppercase R
831235301010011S&#83; Uppercase S
841245401010100T&#84; Uppercase T
851255501010101U&#85; Uppercase U
861265601010110V&#86; Uppercase V
871275701010111W&#87; Uppercase W
881305801011000X&#88; Uppercase X
891315901011001Y&#89; Uppercase Y
901325A01011010Z&#90; Uppercase Z
911335B01011011[&#91; Opening bracket
921345C01011100\&#92; Backslash
931355D01011101]&#93; Closing bracket
941365E01011110^&#94; Caret - circumflex
951375F01011111_&#95; Underscore
961406001100000`&#96; Grave accent
971416101100001a&#97; Lowercase a
981426201100010b&#98; Lowercase b
991436301100011c&#99; Lowercase c
1001446401100100d&#100; Lowercase d
1011456501100101e&#101; Lowercase e
1021466601100110f&#102; Lowercase f
1031476701100111g&#103; Lowercase g
1041506801101000h&#104; Lowercase h
1051516901101001i&#105; Lowercase i
1061526A01101010j&#106; Lowercase j
1071536B01101011k&#107; Lowercase k
1081546C01101100l&#108; Lowercase l
1091556D01101101m&#109; Lowercase m
1101566E01101110n&#110; Lowercase n
1111576F01101111o&#111; Lowercase o
1121607001110000p&#112; Lowercase p
1131617101110001q&#113; Lowercase q
1141627201110010r&#114; Lowercase r
1151637301110011s&#115; Lowercase s
1161647401110100t&#116; Lowercase t
1171657501110101u&#117; Lowercase u
1181667601110110v&#118; Lowercase v
1191677701110111w&#119; Lowercase w
1201707801111000x&#120; Lowercase x
1211717901111001y&#121; Lowercase y
1221727A01111010z&#122; Lowercase z
1231737B01111011{&#123; Opening brace
1241747C01111100|&#124; Vertical bar
1251757D01111101}&#125; Closing brace
1261767E01111110~&#126; Equivalency sign - tilde

※ 한 눈에 보는 아스키 코드 표

표로 깔끔히 정리된 표다. 참고하기 바란다.


※ 다른 표

10진수16진수

해당문자

10진수16진수

해당문자

10진수16진수

해당문자

0~3100~1F

제어문자

6440

@

9761

a

3220

Space

6541

A

9862

b

3321

!

6642

B

9963

c

3422

"

6743

C

10064

d

3523

#

6844

D

10165

e

3624

$

6945

E

10266

f

3725

%

7046

F

10367

g

3826

&

7147

G

10468

h

3927

7248

H

10569

i

4028

(

7349

I

1066A

j

4129

)

744A

J

1076B

k

422A

*

754B

K

1086C

l

432B

+

764C

L

1096D

m

442C

,

774D

M

1106E

n

452D

-

784E

N

1116F

o

462E

.

794F

O

11270

p

472F

/

8050

P

11371

q

4830

0

8151

Q

11472

r

4931

1

8252

R

11573

s

5032

2

8353

S

11674

t

5133

3

8454

T

11775

u

5234

4

8555

U

11876

v

5335

5

8656

V

11977

w

5436

6

8757

W

12078

x

5537

7

8858

X

12179

y

5638

8

8959

Y

1227A

z

5739

9

905A

Z

1237B

{

583A

:

915B

[

1247C

|

593B

;

925C

1257D

}

603C

<

935D

]

1267E

~

613D

=

945E

1277F

623E

>

955F

_

 

633F

?

9660

 





※ 요약

자신의 PC에 설치된 닷넷 프레임워크(.Net Framework) 버전을 확인하는 방법을 소개하고자 한다. 버전 확인 방법은 크게 3가지다. 콘솔 창에 명령어를 입력하여 확인하는 방법과 프로그램을 이용한 방법, 마지막으로 레지스트리를 이용하는 방법이다. 이번 포스트에서는 콘솔 명령어와 프로그램을 이용한 방법을 알아보도록 하겠다.



※ 콘솔에 명령어를 입력하여 확인하는 방법

먼저 콘솔에 명령어를 입력하여 설치된 닷넷 디렉토리 목록을 조회하여 설치된 버전들을 확인하는 방법이다. 아래와 같이 실행 창에 cmd를 입력하여 명령 프롬프트를 띄운다. 실행 창을 띄우는 키보드 단축키는 윈도우 키+R 이다.



실행된 명령 프롬프트 창에 아래 명령어를 입력한다.

dir %windir%\Microsoft.NET\framework /AD


입력하면 아래와 같이 설치된 닷넷 버전들을 볼 수 있다. 필자의 노트북에는 1.x부터 4.0.x까지 설치된걸 알 수 있다.


※ 프로그램을 이용한 확인 방법


dotnet detector.exe


상기 파일을 다운로드 받고 실행 시키면 아래와 같이 나온다. 현재 4.0이 설치되어 있고 4.5.2로 업그레이드 할 수 있으며, 최신 버전은 4.6.2 프리뷰 버전이란걸 알 수 있다.


※ 요약

프로그래밍을 접해보지 못한 사람들도 다양한 언어를 쉽고 재미있게 공부할 수 있도록 동영상 강좌와 문제를 제공하는 사이트인 HelloWorld를 소개하고자 포스팅한다. 필자의 주력 언어는 C++인데, C++말고 다른 언어에도 관심이 생겨 찾아보다가 알게된 사이트다. 배울 수 있는 언어들로는 Python, Java, Swift, Go 등등이 있는데 나중에 더 추가가 될 것 같다. 개발을 한 번도 접해보지 못 한 일반인들의 경우 처음 개발을 시작하기 위한 절차나 접근 등이 어렵고 불편한데, 강좌와 함께 직접 코딩도 할 수 있는 환경을 만들어줘서 처음 시작하는 이들에게는 매우 큰 도움이 될 것이다.


※ 사이트 주소


※ 설명

사이트에 접속한 화면이다. 웹 기반이기 때문에 아이폰이나 아이패드로 접속해도 상관이 없다. 필자는 아이패드로 접속한 화면이다.


화면을 조금 아래로 내리면 프로그래밍 코스가 있는데 아래 화면에서는 iOS Swift, Java, 파이썬의 모습이 보인다. 필자는 요즘 파이썬에 관심이 있다.



아래에는 Scala와 Go, 자바 스크립트가 있다. Go도 나중에 살펴봐야겠다.


정규표현식 또한 나중에 살펴보리라.


알고리즘 문제들이다. 필자는 C++이외에 Python을 그나마 조금 할 줄 알고 있으므로 파이썬으로 한 문제 풀어보았다.


알고리즘 문제는 아이패드에서 풀었는데, 타자도 불편하고 손가락도 아파서 타자를 많이 쳐야하는 문제는 풀기 힘들거 같다. 아래는 간단한 문제라 금방 풀었다.


※ 요약

구글에서 제공하는 C++ 코딩 스타일 가이드다. 체계가 잘 잡힌 회사는 회사 내부에서 사용하는 코딩 스타일이 있을텐데, 없는 회사라면 참고해도 좋을 것이다. 원문은 영문이며 한국어 번역도 있지만 아무래도 최신보다 뒤떨어져 있다.


※ 링크


※ 설명

아래는 구글 C++ 스타일이다.



아래는 번역된 사이트다.


※ 요약

필자가 즐겨하던 퀘이크 시리즈는 소스코드가 공개되어있다. 관심있는 독자는 다운받아 소스코드를 분석해보기 바란다.



※ 설명

다운로드는 Github나 FTP에서 받을 수 있는데, 필자는 FTP 서버에서 퀘이크3 1.32b 버전을 다운받았다.


다운받은 소스코드는 Visual Studio 7.1 버전인데 14.0버전으로 마이그레이션한후 컴파일하였다. 아래는 컴파일 후 실행한 모습이다.


+ Recent posts