posted by 검신흑태자 2025. 4. 7. 00:07

이것도 카테고리 분류를 조금 고민하다가 이건 DB에 대한 거라 DB & MySQL 환경으로 넣었습니다. 나중에 카테고리를 재정리할 필요가 있겠네요 ^^;;

 

이번에는 MySQL을 윈도우 11 환경에서 설치하는 방법입니다. 이전에 PHP와 Nginx를 설치한 이후 개발을 하다 보면 DB가 필수가 되는데 유명한 통합 설치인 XAMPP 등을 이용하시는 게 여러 포스팅을 보시는 것보다 편하지만 제 컴퓨터의 문제인지 XAMPP에서는 MySQL(Maria DB)가 시작이 되지 않는 오류가 간헐 적으로 일어나서 해결책을 찾아보니 명확한 해결책은 없고 데이터를 무조건 백업했다가 덮어쓰는 방법으로 해결하는 경우가 많았기 때문에 이 작업이 귀찮기도 하고 해서 그냥 따로 설치했습니다. 

 

아무튼 MySQL도 따로 설치하실 때 방법은 간단합니다.MySQL과 MariaDB는 미세한 차이는 있지만 거의 같다고 생각하시면 되니 원하시는 걸로 설치하셔도 무방합니다

 

1. MySQL은 MySQL 홈페이지(https://www.mysql.com/)에서 MariaDB는 MariaDB 홈페이지(https://mariadb.org/) 에서 다운 및 설치가 가능합니다.

2. 제 경우에는 Maria DB를 설치했기에 그걸 기준으로 설명합니다. MariaDB는 압축 해제를 통한 설치도 지원하지만 설치 프로그램 형태로 다운로드가 가능하고 설치 안내에 따라 경로 수정, 루트 비밀번호 및 외부접속, 기본 문자열 인코딩 등을 본인이 원하는 대로 설정하시고 설치를 진행하시면 됩니다.

3. 설치가 완료되면 설치가 되었는지는 같이 설치되는 heidiSQL로 확인 가능합니다. 아니면 설치된 경로에 bin 폴더를 cmd로 띄워서 mysql --version 명령어를 입력해서 확인이 가능합니다.

4. 다른 PHP나 Nginx와 다르게 서비스에 자동적으로 등록되어 실행됩니다. 

 

각각의 프로그램을 따로 설치하다 보니 편한 것도 있고 불편한 점도(설정 등) 있네요. 그래도 하나하나 본인이 해결해간다는 느낌이 들어서 저는 개별적으로 다 설치하는 쪽이 더 좋았네요. 

posted by 검신흑태자 2025. 4. 5. 21:19

이전에 포스팅을 한 대로 PHP와 Nginx까지 설치를 다 하셨으면 이제는 PHP와 Nginx를 연동해 줘야 합니다. 그래야 본인이 작성하는 PHP 코드도 로컬 환경에서 테스트 가능하게 됩니다.

 

Nginx와 PHP 연동의 경우 윈도우 환경이든 리눅스 환경이든 설정하는 방법은 거의 비슷하다고 생각해 주셔도 괜찮습니다. 실행을 설정하고 하는 부분이 차이가 조금 있을 뿐이지 문서를 수정하거나 하는 부분은 거의 비슷합니다.

 

1. Nginx의 폴더에서 conf 폴더를 열어 nginx.conf 파일을 연다. 아마 이게 아파치에서는 .htaccess와 비슷할 겁니다.

 1) server 부분에 location 첫번째에 index.php 추가

 2) 아래쪽 location에 php FastCGI 부분에 주석 전부 해제

 3) fastcgi_param에 SCRIPT_FILENAME 뒷부분에 $document_root로 경로 수정

 4) fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 이렇게 수정되면 됩니다.

 5) cmd로 다시 nginx 폴더를 열고 서비스를 재시작합니다. -> nginx -s reload

 6) 예시는 아래와 같습니다.

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   F:/Documents/Development/Projects/example;
            #root html;
            index  index.php index.html index.htm index.php;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           F:/Documents/Development/Projects/example;
            #root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

 7) 기본 nginx.conf에서 변경한 부분으로 # 처리된 부분은 주석처리입니다.

 

2. PHP를 설치한 곳으로 이동하여 cmd를 열고 명령어를 실행합니다.

 1) 명령어는 php-cgi.exe -b "127.0.0.1:9000" -c php.ini

 2) 작업관리자를 실행시켜 프로세스에 CGI / FastCGI가 활성화 되어있는지 확인합니다.

 3) nginx의 html 폴더로 이동하여 index.php를 작성해서(localthost/index.php로 작동시켜도 됩니다.) 연동을 확인합니다.

 4) 해당 폴더로 매번 이동하여 명령어 입력을 하는 부분이 번거로웠기 때문에 이전 포스팅 중 PHP 설치에 배치 파일로 만들어서 실행하는 방법을 올려 놓았으니 그걸 참고하셔도 됩니다.

 

3. nginx 기본 폴더 변경

 1) nginx를 설치하면 기본 폴더가 nginx 하위 폴더에 있는 html로 되어 있는데 이 기본 폴더를 변경해야 할 때 쓰는 설정입니다.

 2) nginx.conf를 열어서 location에 root 경로(50x.html 부분 제외)를 원하는 폴더가 있는 경로로 수정합니다. 하지만 경로를 그대로 복사해서 붙여넣으면 안 되고 역슬래시(\)를 슬래시(/)로 바꿔서 입력합니다.

 3) nginx 및 php-cgi 서비스를 재시작합니다.

 4) 위의 코드 형식으로 붙여 넣은 부분을 참고하시면 더 쉽게 바꾸실 수 있을 거라 생각되네요.

 

PHP와 Nginx 연동에 대해 윈도우에서도 간단하게 할 수 있으니 처음 설치를 하면서 힘드셨던 분들에게 도움이 되었으면 좋겠습니다.

  

posted by 검신흑태자 2025. 4. 4. 20:23

카테고리를 PHP로 할까 Linux & Server로 할까 고민하다가 Ubuntu에서 설치하는 것도 적어둔 게 있기 때문에 윈도우에서 PHP 연동까지를 PHP로 보고 - 지금 실제로 개발을 하고 있는 환경이라.. - 카테고리를 이쪽으로 정해서 작성합니다.

 

Nginx 서버의 경우 아파치가 원체 유명하고 많이 쓰기는 하지만 전 예전부터 Nginx를 사용하기도 했고 속도면에서 조금 더 빠르다고 느낄 때가 많기 때문에 Nginx를 기반으로 설치를 진행합니다. 아파치는 혹여 나중에 Java에 대해 포스팅하게 되면 올릴지도 모르겠네요.

 

Nignx 서버에 대한 윈도우 설치는 생각보다 간단합니다.

 

1. PHP와 마찬가지로 Nginx 공식 사이트(https://nginx.org/en/)에서 다운로드 페이지 이동 후 Stable 버전을 다운로드를 합니다.

2. 이전 PHP와 마찬가지로 원하는 폴더에 압축을 풀어줍니다.

3. 압축을 풀고 해당 폴더에서 cmd를 실행해서 nginx -v로 버전을 확인합니다.

4. Nginx 실행파일을 실행합니다.

5. localhost에 접속해서 nginx 기본 페이지가 뜨는지 확인합니다.

6. Nginx 압축 파일안에 Nginx 폴더가 하나 더 있으니 잘 확인합니다

7. 기본적인 실행 및 cmd의 간편함을 위해 PHP에서 했던 것처럼 환경변수 path에 nginx 폴더를 등록합니다.

 

딱히 사진으로 설명할 필요도 없을 정도로 간단하기 때문에 이대로 하셔서 Nginx 기본 페이지가 localhost에서 표시가 되는지 확인하시면 됩니다. PHP와의 연동은 다음 포스팅에서 다룰 수 있도록 하겠습니다.

posted by 검신흑태자 2025. 4. 3. 20:16

PHP로 개발을 공부하거나 프로젝트, 업무 등을 진행할 때 윈도우 환경에서 PHP 설치에 관하여 제가 직접 설치해보고 글을 작성합니다. 리눅스나 Mac의 경우 참 간단하고(명령어가 잘 되어있기도 하고요) 쉬운편인데 희안하게 윈도우만 넘어오면 쉽지가 않네요. 원래는 XAMPP를 썼었지만 MySQL(Maria DB)가 계속 오류를 일으켜서(제대로 켜지지 않고 shutdown error가 발생) 매번 백업 파일을 복원하거나 백업하는 것도 힘들어져서 PHP, MySQL(Maria DB), Nginx(아파치를 쓰려다가 그냥 Nginx로 가기로 했습니다) 를 다 따로 설치한 뒤에 올리는 글입니다. 일단은 먼저 PHP 설치부터 글을 시작합니다.

 

1. https://www.php.net/ 에서 윈도우 릴리스 버전을 다운로드 합니다. 다른 DB 툴을 쓰시는 분들은 괜찮지만 저는 phpMyAdmin을 쓸 예정이 있었기에 8.4 버전에서는 phpMyAdmin이 어떻게든 에러가 나서 버전을 낮춰서 8.3으로 설치했습니다. 그래서 php.net 에서도 8.3버전을 다운로드 하시는게 나을 겁니다.(phpMyAdmin을 사용하실 경우만요)

 

2. 설치 종류는 4가지인데 64, 32비트의 차이, Non-Thread-Safe와 Thread-Safe 버전으로 나뉘어 집니다. 보통은 Non-Thread-Safe는 IIS(윈도우즈 서버)에서 많이 사용되니 여기서는 Thread-Safe 버전으로 설치합니다.

 

현재(2025년 4월 3일 기준)으로는 8.4 버전에 대해 메인 페이지에 나와있지만 저는 Download로 들어가서 8.3 버전의 윈도우 다운로드쪽 징크를 선택하면 위와 같이 나옵니다. Thread Safe 버전으로 설치하기로 했기에 64비트의 Zip을 설치해서 다운 받습니다.

 

3. 받은 압축파일을 자신이 원하는 경로에 풀어줍니다. 저는 원활한 관리를 위해 Servers라는 폴더를 만들어서 거기에 php, nginx, mysql을 모두 넣어서 관리하고 있습니다.

 

4. 압축해제를 하면 기본적인 설치는 다 되지만 기본적으로 PHP 작동을 위한 윈도우 환경변수 설정을 해야합니다.

 

5. 윈도우 키를 눌러 환경 변수를 검색 -> 시스템 환경변수 클릭 -> 하단에 환경변수 클릭

 

6. 환경변수를 클릭하면 위와같은 화면이 나올텐데 시스템 변수쪽에 있는 Path를 선택하고 편집을 누릅니다.

7. 자신의 php가 설치되어있는 경로를 입력해 줍니다.

 

8. 윈도우 버튼을 누른 후 cmd를 입력하고 php -v로 버전 확인이 되는지 보면 됩니다.

 

9. php 8.4 버전도 composer를 쓰면 phpMyAdmin이 된다고는 하는데 윈도우에서 composer를 설정하기가 복잡한게 많아서 그냥 0.1 버전 다운그레이드(기본 문법이나 이런면에서 크게 변경점은 없습니다.)해서 설치했습니다.

 

10. 설치가 완료되면 cmd에서 php를 실행해야 하는데 자신이 설치한 경로에서 cmd 창을 열고 php-cgi.exe -b "127.0.0.1:포트번호" -c php.ini 로 실행을 해주면 잘 작동 할 겁니다.

 

11. 제 경우 PHP 실행 시 매번 cmd에서 입력하는 부분이 귀찮았기 때문에 bat(배치 파일) 파일을 만들었습니다.

@ECHO On 
ECHO PHP-CGI Start

php-cgi -b "127.0.0.1:포트번호" -c php.ini

popd

:loop
goto loop

 

12. bat 파일로 저장하면 실행 이후 CMD 창이 떠 있을 겁니다. loop 문의 경우 CMD 창이 닫혀버리면 실행 여부를 컴퓨터를 켜놓았을 때 작업 관리자로 확인을 해야해서 계속 띄워져 있을 수 있도록 하려고 넣었습니다. 그리고 실행되어 있는 CMD 창이 닫히면 php-cgi가 종료되서 php 코드 실행이 안되므로 실행이 안될 경우 확인해 보도록 하는게 좋겠네요

 

13. 마지막으로 배치 파일도 작업 표시줄에 등록을 하려고(이 귀차니즘 때문에..)해서 아래와 같이 하면 됩니다.

 - 배치 파일 우클릭 후 바로가기 생성

 - 생선된 바로가기 우클릭 후 속성에서 바로가기 탭으로 이동

 - 경로의 맨 앞에 cmd.exe /C를 추가합니다(경로와 한칸 공백이 있어야 합니다.)

 - 해당 파일이 cmd로 변경되면서 작업 표시줄에 추가가 됩니다.

 

저는 PHP + MySQL(MariaDB) + Nginx를 같이 쓰는데 XAMPP는 아파치를 기본으로 사용하기 때문에 제 설정과는 다를 수 있습니다. 다음에는 윈도우에서 Nignx 설정을 하는 방법을 업로드 할 수 있도록 하겠습니다. 혹여 저처럼 XAMPP에서 오류가 난다거나 개별적으로 PHP를 설치하고자 하시는 분들께 도움이 되길 바랍니다.

 

posted by 검신흑태자 2025. 4. 3. 00:26

너는 내 자부심이야

 

'승부'라는 영화는 2025년 3월에 개봉한 영화로(바로 전주에 개봉했습니다) 이병헌, 유아인 등이 주연이며 감독은 '보안관' 영화의 감독이었던 김형주 감독입니다.

 

원래는 이런 영화가 있었는지 개봉을 할 예정이었는지 전혀 모르고 있다가 얼마 전 무심코 TV 채널을 돌려보다가 영화를 소개해주는 프로(출발 비디오 여행이었는지는 잘 기억이 안납니다..)를 봤을 때 이 영화에 대한 소개가 나와서 보는데 최고의 바둑기사라고 불리는 조훈현 9단과 이창호 9단에 대한 이야기였던 것에 흥미를 느꼈고 주연배우가 이병헌 씨였기 때문에 한번 봐도 괜찮겠다는 생각이 들어서 이번에 정말 오랜만에 영화관에 가서 영화를 보았습니다. 2023년 4월에 맷데이먼과 벤 애플렉 주연인 '에어'라는 영화 이후로 장장 2년 만에 영화관에 가서 영화를 보게 되었더군요. 아 생각해 보니 혼자서 2023년 8월에 오펜하이머도 한번 봤었네요. 아무튼 거진 2년 만에 영화관에서 영화를 보게 되어 감회가 새롭더군요. 

 

원래는 바둑은 둘 줄 모르지만 늘 흥미는 있었고 재미있게 봤던 만화인 '미생'에서도 바둑에 대한 이야기가 나오고 여러가지 바둑에 대한 이야기는 좋아했었습니다. 어렸을 때 잠깐이지만 바둑을 배운 적도 있었지요 - 유치원 때 잠깐이었지만..- 지금도 관심은 계속 있어서 책도 사두고 스팀에서 게임성 좋기로 소문난 바둑 게임도 사뒀지만..실제로는 선입견 때문인지 진입장벽 때문인지 쉽게 시작을 하지도 못하고 있습니다. 아무튼 유명하고 일화도 많기로 소문난 두 바둑기사의 이야기라 T 멤버십 VIP 무료티켓도 남아있어서(매년 이 티켓 횟수만큼은 봐야지 하는데 CGV가 멀기도 하고 해서 날려버린 게 꽤 많네요) 어머니와 함께 안산 CGV에 예매를 해서 영화를 봤습니다. 

 

결론부터 이야기하자면 제 취향에는 딱 맞는 영화였네요. 이병헌씨와 유아인 씨의 연기는 뭐 말할 것도 없고 자칫하면 지루해질 수 있는 소재인 바둑이라는 소재에 대해서는 바둑을 몰라도 볼 수 있도록 바둑용어는 거의 나오지 않고 바둑을 두는 장면 자체도 그렇게까지 많이 나오지 않습니다. 물론 바둑 자체를 계속 두지만 바둑을 알아야만 알 수 있는 내용들은 거의 나오지 않습니다. 그리고 두 사람의 사제관계도 적절히 강약을 조절해 가면서 세월에 흐름에 따라 관계를 잘 표현해 내서 뒤의 내용이 어떻게 될지 아는 분도 많을 텐데 뒷 이야기를 궁금할 수 있도록 영화에서 잘 풀어낸 것 같네요.

 

대략적인 줄거리는 세계대회에서 우승한 조훈현 9단(이병헌)이 이창호 9단(어린시절 - 김강훈 / 이후 - 유아인)과 어린 시절에 한번 대국을 한 뒤에 조훈현 9단이 사활문제를 내고 이창호 9단이 그 문제를 풀게 되면서 조훈현 9단이 직접 이창호 9단이 사는 지역까지 내려와 한번 더 대국을 하고 그 이후 이창호 9단을 제자로 받아들이고 같이 살게 되면서(이걸 내(內) 제자라고 하더군요) 이야기는 시작되고 두 사람과의 관계와 바둑에 대한 이야기들로 영화는 채워집니다. 더 써 내려가고 싶긴 하지만 스포일러가 될 수 있으니 줄거리에 대한 이야기는 여기까지 해야겠네요. 예전에는 스포일러는 접어뒀는데 지금 블로그 재활 중이라 나중에는 그렇게 해야겠네요^^;;

 

두 사람의 일화는 이미 유명한게 많아서 익숙한 분들도 많을 거라고 생각이 듭니다. 하지만 영화는 영화 나름의 각색의 매력이 있듯이 두 사람의 이야기를 이렇게 영화로 보게 되니 시간 가는 줄 모르고 볼 수 있었고 느낌도 새로워서 좋았습니다. 다만 이창호 9단의 유명한 일화 중 하나인 세계대회에서 혼자 남아 많은 기사들을 이기는 내용도 나올 줄 알았는데 조훈현 9단과의 관계에 집중한 영화라서 그런지 그 장면은 안 나온 게 아쉽네요. 그리고 영화를 볼수록 유아인 배우는 아쉽네요..

 

요새는 어떤 영화든 금방 OTT에 들어오는 경우가 많아서 그런것도 있고 영화표 값이 상당히 비싼 이유도 있고 해서 영화관에서 영화를 본 건 정말 오랜만이었는데 어머니와 같이 시간을 보내서도 좋았고 영화도 재미있었어서 하루의 반 이상 즐겁게 보낼 수 있었네요. 이 영화가 계기가 될지는 모르겠지만 묵혀두었던 바둑 기초 책도 한번 꺼내서 볼 수 있도록 해봐야겠습니다. 바둑을 좋아하시는 분들에게도 바둑을 모르시지만 두 사람의 이야기에 흥미가 있으셨던 분들도 한 번쯤 보셔도 괜찮을 것 같네요

posted by 검신흑태자 2025. 4. 1. 23:57

프로젝트를 진행하는 도중 급하게 버튼을 만들고 다른 페이지로 이동을 시켜야 하는 일이 있었는데 지금 진행하는 프로젝트는 PHP를 이용하고 있으므로 대개는 버튼 등은 HTML 태그를 이용해서 만드는 편이어서 간편하게 input 태그에서 button 입력 시에(클릭) 외부 링크나 자신이 원하는 페이지 파일로 이동하는 방법을 간단하게 정리합니다.

 

현재 탭에서 다른 페이지로 이동하는 방법은 아래와 같습니다.

<input type="button" onClick="window.location='이동경로(링크) 혹은 파일경로'">
<input type="button" onClick="location.href='이동경로(링크) 혹은 파일경로'">
예시
<input type="button" name="test" id="test" value="현재탭" onClick="window.location='test.php'">
<input type="button" name="test2" id="test2" value="현재탭2" onClick="location.href='test2.php'">

 

큰 문제까지는 아니지만 가끔씩 location.href가 제대로 작동하지 않는 경우가 있어 저는 주로 window.location을 사용합니다.

 

그리고 현재 탭의 정보는 그대로 두고 새 탭에서 열려야 하는 경우가 있는데(설정을 누르고 새탭에서 설정하고 돌아온다거나) 그 경우는 간단하게 아래와 같이 코드를 작성합니다.

<input type="button" onClick="window.open('이동경로 혹은 파일경로')">
예시
<input type="button" name="test3" id="test3" value="새탭" onClick="window.open('test3.php')">

 

혹은 팝업이 필요한 경우도 있는데(대부분은 새탭보다는 이걸 선호할 수 있겠네요) 이 경우는 window.open에 옵션으로 팝업의 이름과 크기 등을 지정해서 사용하면 간단하게 팝업 출력이 가능합니다. 아래의 코드의 옵션 외에도 스크롤 여부 등의 추가 옵션이 있기 때문에 세세한 사항을 설정하고 싶으시면 그 옵션들을 찾아보시면 될 것 같네요.

<input type="button" onClick="window.open('이동경로 혹은 파일경로', '팝업이름', 'width=가로크기, height=세로크기')">
예시
<input type="button" name="test4" id="test4" value="팝업" onClick="window.open('test4.php', 'POPUP', 'width=300, height=400')">

 

이렇게 팝업 출력을 할수는 있지만 매번 입력하기도 번거로운 측면이 있고 해서 자바 스크립트로 스크립트를 만들어서 적용하는 경우가 대부분이라고 생각이 되네요. 버튼을 이용해서 링크 이동은 이정도만 알고 있어도 충분히 활용할 수 있을 것 같습니다.

posted by 검신흑태자 2025. 3. 30. 20:11

어쨋든 개발자는 결국 ‘마음처럼 되는 세상’을 스스로 만들어 나가는 사람이라고 말할 수 있을 거에요

 

'코딩으로 세상을 바꿀수 있다면' 책은 현직 여성 개발자인 이래은 이라는 분께서 쓰신 책입니다. 이 책의 경우 예전에 제목 때문에 그냥 구매했던 책중에 한권인데 한동안 독서를 하지 않고 - 블로그를 보니 작년 4월에 글을 쓰고 안쓴 것을 보니..거진 1년동안 독서를 하지 않았네요. ㅠ_ㅠ - 가방에만 이 책을 넣어다니다가 요새 들어 다시 독서하는 습관을 되돌리기로 마음먹고 꾸준히 일주일 정도 읽어서 완독한 책입니다.

 

아무 정보도 없이 그냥 제목에 코딩도 들어가고 어떤 내용일지 궁금해서 제목만 보고 구입한 책인데 예상했던 프로그래밍에 대한 기술 적용이나 노하우 같은 것이 담긴 책이 아니라 프로그래밍이라는 자체에 대한 소개와 프로그래밍이 어떻게 사용되는지, 실생활에서는 어떤 도움을 주고 어떤 부작용 들이 있는지를 흥미롭게 쓴 책입니다.

 

프로그래밍에 대한 입문용 책으로 좋을 것 같긴한데 여기서 제가 말하는 입문이란 이전에 리뷰를 한적이 있던 'Hello Coding 프로그래밍' 이라는 책처럼 하나의 언어를 선택하여 간단한 코드 작성의 문법과 기술을 알려주며 흥미를 유발하는 방식의 책이 아니라 프로그래밍의 간략한 역사에서부터 최초의 프로그래머에 대한 이야기, 개발자는 어떤식으로 개발을 하고 디버깅을 하는지, 왜 개발자들이 논리적인 사고 방식을 가지고 있는지 같은 흥미 위주의 내용이 많이 소개되어 있습니다.

 

처음 책이 출판된게 2023년으로 2년 전이긴 해도 빅데이터와 프로그래밍의 상관관계나 ChatGPT에 대한 내용도 조금은 포함하고 있고 프로그래밍 혹은 프로그램 자체를 만들 때 생각해봐야 하는 윤리적이나 사회적인 문제에 대해서도 이해하기 쉽게 설명하고 있습니다. 따라서 기본적으로 코딩이라는 제목으로 시작하는 책들이 대개 코드들이 많이 들어있으면서 보기 어려운 책이 많이 있는 반면에 이 책은 무난하게 어떤게 프로그래밍이고 어디에 적용할 수 있고 어떤식으로 발전해 왔는지 같은 흥미 위주의 내용이 많기 때문에 책을 읽을 때 진입 장벽 없이 읽을 수 있다는 장점이 있습니다.

 

실제로 프로그래밍을 배우고 싶은데 막상 코드부터 짜려는 책들을 보면 어려워 보이거나 거부감이 드는 경우가 종종 있을 수 있는데 이 책은 그런 부분은 일절 없고 책에 그림도 삽입되어 있고 글씨도 큼직한 편이라 읽기도 쉬워서 한번 쭉 읽어보고 더 흥미가 생겨서 프로그래밍의 세계로 입문하기에 적합하다는 생각이 드네요. 물론 코딩을 논하는 만큼 아주 간단한 코드들이 들어가 있기는 한데 전혀 몰라도 상관없이 읽을 수 있다는 것도 장점 중에 하나가 되겠네요.

 

책의 챕터도 각각의 내용에 따라서 잘 세분화 되어있고 거기에 해당하는 내용도 간단하게 풀어서 - 예를 들면 알고리즘에 대한 설명도 간단하게 나와있습니다. - 이야기하고 있기에 개발자인 제가 볼때는 더욱더 부담없이 볼 수 있었네요. 개발에 입문하고 싶으신 성인분들에게도 좋겠지만 내용의 구성이나 설명 방식이 어린 아이에게도 흥미를 가지게 할 수 있을 것 같다는 생각이 듭니다. 

 

주변에 프로그래밍에 흥미는 조금 있지만 무작정 개발책을 들고 공부하기가 조금 꺼려지시는 분이 계시다면 한번 읽어보셔도 괜찮을 거라는 생각이 듭니다.

 

오랜만에 쓴 글이라 어째 글을 쓰는 것도 마음대로 잘 되지 않네요. 기술 관련 내용에 대한 글도 업로드를 해야지 하고서는 업로드 하고 있지를 않아서 자신의 게으름을 뼈아프게 깨닫게 됩니다. 앞으로는 책이든 기술 내용이든 뭐든 더 열심히해서 블로그도 제대로 꾸려나갈 수 있도록 노력해야 겠습니다. 그럼 모두 좋은하루 되세요~^^ 

 

' > IT' 카테고리의 다른 글

개발자 원칙  (0) 2024.04.28
Hello Coding 개념부터 처음 배우는 프로그래밍  (0) 2023.02.12
posted by 검신흑태자 2024. 4. 28. 00:16

 

오류를 만날 때가 가장 성장하기 좋을 때입니다.

 

'개발자 원칙'은 여러 기업에 재직하고 있는 시니어 개발자 혹은 리더급 개발자들 9명의 이야기를 모아놓은 책으로 자신들이 개발을 할 때 겪었던, 혹은 지금도 겪고 있지만 해결하기 위해 노력했던 방법론들이나 자신의 입장에서 성장에 필요하다고 느껴지는 부분들에 대한 이야기, 또는 자신들이 가지고 있는 개발과 관련된 원칙에 대한 이야기들을 다루고 있습니다.

 

책 제목이 '개발자 원칙'인 만큼 본인들이 가지고 있고, 꼭 지키려고 노력하는 원칙들을 소개하며 이를 자신들의 다양한 경험들과 엮어서 소개하고 있습니다. 공동 저자가 많은 만큼 다양한 사람들의 개발이 난관에 부딪혔을 때나 본인들이 성장을 위해서 실제로 어떻게 행동해 왔는지 등에 대해 이야기해 주고 있기 때문에 이 책을 읽는 개발자분들에게는 조금 더 공감을 얻어내기가 쉽지 않을까 생각합니다.

 

 책 내용 안에는 이직과 같은 일반적인 내용도 담겨 있긴 하지만 저자들이 전부 개발자이기 때문에 내용에 직접적으로 코드가 언급되는 부분도 많아서 해당 직군이 아니신 분들에게는 조금 읽기가 까다로운 책이 될 수는 있겠네요. 하지만 개발자를 목표로 하고 있거나 주니어에서 시니어 개발자에 이르기까지는 한번쯤 읽어봐도 좋을 내용이라고 생각합니다.

 

저자들 개개인이 가지고 있는 원칙이 다르고 개발하는 방법, 환경도 모두 다른 상황에서 본인들의 이야기를 풀어놓은 것이기 때문에 자신들이 생각하거나 실천하고 있는 원칙과 같은 게 있는지 찾아보는 것도 좋은 방법인 것 같고 다른 개발자들은 어떻게 생각을 하며 개발을 하고 있나 등과 같은 궁금증을 해결하기에도 어느 정도 도움이 된다고 생각이 듭니다. 저 같은 경우는 개발자이기도 하지만 다른 개발자들의 이야기를 읽거나 어떻게 생각하는지 궁금할 때가 많기 때문에 이 책을 읽으면서 여러 가지 원칙들이나 방법론들이 있고 그중에는 지금 제가 개발하는 것에 필요한 것들도 있었기 때문에 꽤 만족하면서 재미있게 읽은 편입니다.

 

개발을 하다가 막히거나 내가 생각하는 방법들이 현재 실무에 맞지 않다고 느껴질 때마다 한 번씩은 꺼내서 다시 읽어보지 않을까 싶습니다. 다만, 책을 읽다 보면 요새 제가 독서하는 능력이 떨어져서인지는 모르겠지만 간간히 오탈자나 문맥에 맞지 않는 부분들이 보이는데 크게 신경 쓸 정도는 아니니 그냥 이해하고 넘어가시면 될 것 같네요.

 

성장을 무척 원하고 있는 주니어 개발자 분들이나 개발자를 목표로 하고 계신 분들 - 단순한 사견이지만 이제 막 개발 공부를 시작하신 분들께는 조금 책이 어려울 수 있을 것 같아요. 하지만 한번 읽어두었다가 개발자가 되고 나서 생각이 나서 한번 더 읽어본다면 분명히 도움이 될 거라고는 생각합니다.- 혹은 다른 시니어 개발자들의 생각을 알고 싶으신 시니어 개발자 분들에게도 한번쯤 추천해 드리고 싶은 책입니다. :) 

 

' > IT' 카테고리의 다른 글

코딩으로 세상을 바꿀 수 있다면  (0) 2025.03.30
Hello Coding 개념부터 처음 배우는 프로그래밍  (0) 2023.02.12
posted by 검신흑태자 2024. 4. 26. 23:06

명함 속에 나는 사장입니다. 머리 속에 나는 개발자입니다. 하지만, 마음 속에 나는 게이머입니다.

 

"만약 도망친다면 평생 후회한다."

최종적으로 결단한 이유는 오로지 이것입니다.

 

이 책은 어떤 카테고리에 넣어야되나 고민하다가 카테고리를 생성하는 것도 분류가 애매해서 서점 페이지를 가보니 경제 / 경영으로 분류가 되어있어 그쪽 카테고리로 넣었습니다. 

 

이와타씨에게 묻다는 전 닌텐도 사장이었던 이와타 사토루씨가 타계한 뒤에 호보닛칸이토이 신문이라는 곳에서 생전에 이와타씨와 했던 이야기들과 인터뷰들을 엮어서 책으로 만든 것으로 이와타씨의 자서전격인 책이 아니라 이와타씨를 그리워하는 사람들이 생전에 그와 했던 대담이나 인터뷰들을 모아서 책으로 출판했다는 느낌이 강합니다. 그렇게 엮은 내용들이기 때문에 호보닛칸이토이 신문에 실린 내용이나 닌텐도의 사장에게 묻다와 같은 인터넷 페이지에서도 같은 내용을 찾아볼 수 있습니다. 

 

이 책은 닌텐도 게임도 많이 하는 편이고 닌텐도 자체도 좋아하는 편이지만 정작 이 닌텐도를 이끌어가는 이와타 사토루라는 사람에 대해서는 잘 몰랐을 때 이 책이 그의 사후에 출판된다고 해서 출판되자 마자 구입해서 완독 한 다음 시간이 조금 더 지나서- 3년이나 지났군요...- 내용이 잘 생각이 안나기도 하고 읽을 책을 고르다가 한번 더 읽어보기로 하고 두 번째로 완독 했습니다. 첫 번째로 읽을 때만큼의 놀라움은 많이 사그라 들었지만- 물론 내용이 드문드문 기억났기 때문입니다- 1인 사업체를 운영하고 개발자로 일하면서 게임업계에 몸담고 있는 사람으로서는 두 번째 읽었을 때도 많은 감명을 받을 수 있었습니다.

 

책 자체는 이와타 사토루씨의 어린 시절(고등학교) 처음 코딩을 하여 게임을 만들던 일이나 HAL 연구소에서 일하게 된 것, HAL 연구소의 사장이 되었을 때의 이야기, 닌텐도의 사장이 되었을 때의 이야기 등이 주를 이루고 있습니다. 다만, 이 책이 이와타씨의 모든 행적이나 업적 전체를 아우르는 책은 아니기 때문에 이와타씨가 HAL 연구소의 사장이 되어서의 일이나 어떻게 닌텐도의 사장이 되었나 등의 대한 부분은 나와있지 않고 그 시절에 책에 자주 등장하는 미야모토 시게루씨나 이토이 시게사토씨와 이야기했던 것들이나 그 시절에 했던 인터뷰 등으로 이루어져 있습니다. 단편적인 예로는 닌텐도의 사장이 된 부분에 대해서는 '후에 저는 닌텐도의 사장이 되었습니다만..' 이런 식으로 간략하게 넘어갑니다. 대신에 HAL 연구소에서 일할 때라던지 아니면 닌텐도 사장으로 일하게 되었을 때 어떤 생각과 철학을 가지고 일을 했는지, 사람들을 어떤 식으로 대했는지, 닌텐도의 발전이나 게임 및 하드웨어를 제작할 때 어떤 방식으로 진행하려고 했었는지 등에 대해서는 본인의 생각이 잘 드러나도록 글이 엮여 있습니다.

 

또한 중간중간 이와타씨의 말조각이라고 하여 실제로 이와타씨가 이야기한 일을 하는 것이나 사람을 대할 때의 철학 등도 알 수 있게끔 되어있어서 어떤 사람이었는지 책을 읽으면서 이해하기가 조금 더 수월해집니다.

 

이 책은 처음 읽을 때에도 여러 가지로 생각할 거리들을 많이 던져주어서 좋았는데 두 번째 읽을 때에도 거의 비슷한 감각이어서 또다시 책 페이지를 넘기기가 아쉽더군요. 솔직히 이 책을 접하기 전까지는 미야모토 시게루씨에 대해서는 알고 있었어도 이와타 사토루라는 사람에 대해서는 잘 모르는 상태였는데, 이 책을 읽고 나서는 이렇게 대단한 사람도 있었구나 하고 놀란 게 반이고 배울 점이 정말 많은 사람이다라고 느낀 게 반정도 되는 것 같네요. 닌텐도 사장으로 취임한 다음에 만든 DS나 Wii의 하드웨어, 소프트웨어에 대한 철학이 어디서 오는지도 대략적으로 알 수 있어서 좋았습니다.

 

현재는 타계한 지가 조금 지났기 때문에 앞으로 닌텐도가 어떻게 방향성을 가지고 갈지는 모르겠지만, 그래도 이와티씨의 책 안에 나온 말처럼 남을 행복하게 해주는 기기와 게임을 만들고 싶다는 정신이 계속 이어졌으면 하는 바람이 있네요.

 

닌텐도의 여태까지의 많은 중요한 업적의 핵심에 있던 사람에 대해서 알고 싶으시거나 닌텐도의 사장이었던 사람에 대해서 알고 싶은 분이라면 한 번쯤 읽어보셔도 괜찮을 것 같네요. 게다가 책 자체도 얇고 대화체로 구성이 되어있기 때문에 가볍게 읽기도 좋습니다. 그러니 관심 있으신 분들은 한번 읽어보시는 걸 추천드립니다. :)

 

 

 

' > 경제 & 경영' 카테고리의 다른 글

마스터스 오브 스케일  (0) 2023.02.01
posted by 검신흑태자 2023. 2. 12. 00:29

이 책은 지금 코딩 교육기관을 운영하고 있는 Pope Kim이 쓰신 프로그래밍 관련 책으로 어떤 분류에 책을 넣어야 하나 고민하다가 책 내용 자체가 언어를 가르치거나 하는 내용이 아니라 프로그래밍 입문자를 위해 프로그래밍의 개념 자체가 많이 설명된 책이어서 그냥 책에 IT 분류를 만들어서 거기에 넣었습니다.

 

예전에 비해서 프로그래밍에 대한 관심이 늘어나고 있고 코딩 교육에 관한 컨텐츠도 많이 생기고 있어서 가끔씩 기초나 비전공자를 위한 책들을 구매해서 보면서 요새는 어떻게 개념을 설명해주는지 보고는 하는데 그 중 하나가 이 책입니다. 

 

이 책의 대상자는 코딩을 접해본적 없지만 프로그래밍에 관심이 있는데 자신이 과연 코딩이 적성에 맞는건지 매번 추천해주는 다른 서적들을 보면 언어의 구문만 가르쳐서 너무 힘들지 않을까 고민하시는 분들에게는 아주 좋은 책이 될 것 같습니다. 그리고 코딩에 관심이 있어서 한번쯤 접해보고 싶은 학생들에게도 입문서로는 괜찮다고 생각하네요.

 

책 내용의 경우 C#을 기반으로 해서 예제들이 나와있기는 하지만 코드 작성에 관한 예제나 프로그래밍에 대한 깊은 부분까지 들어가지 않고 기본적으로 용어에 관한 유래나 설명, 각종 구문들에 관한 개념정리 및 어떻게 이 구문들이 실행되는지 등이 나와있으며 그 챕터의 이해를 조금 더 돕기위해 기본 문제 및 심화 문제도 준비되어 있습니다.

 

개념 설명이 위주라고 해서 내용이 적은 것은 아니고 변수에서 부터 조건문, 반복문, 랜덤 등에 이르기까지 프로그래밍에서 필수적으로 사용되는 기능들은 챕터별로 나누어서 간단한 예제와 함께 설명하고 있고 전체 챕터를 아우르는 숫자야구 게임- 전 사실 이 게임을 접해본적이 없어서 규칙을 아직도 잘 모르겠습니다...- 프로그램 작성을 통해 어떤식으로 배운 구문들이 활용되는지도 보여주고 있어서 입문자들에게 충분히 흥미를 일으킬만한 내용으로 구성되어 있습니다.

 

 제가 개발을 처음 시작할 당시에는 이런 책들은 전무하다시피 했고 항상 두꺼운 언어책 - 아직도 터보C 2.0 책은 소장중입니다..- 들만 있다보니 진입장벽이 엄청 높아 포기했다고 하는 사람들을 많이 보았었는데 이 책은 두껍지도 않고 내용 자체도 어려운 내용이 많지 않아서 프로그래밍에 관심은 있는데 어떻게 입문을 해야하지? 라고 고민하시거나 나한테도 적성이 있을까? 하고 고민하시는 분들에게는 한번쯤 보시면 괜찮을 것 같습니다. 책을 쭉 따라가며 예제와 문제풀이를 해보고 이런 개념이나 예제풀이 등에 재미를 느끼신다면 다음 단계(사용하고자 하는 언어책)로 넘어가는걸 고려해도 될 것 같네요. 게다가 책 내용 자체는 아니지만 심화문제는 저자의 유튜브에서 확인도 가능하니 이것도 나름대로 장점이라고 할 수 있을 것 같아요.

 

제 경우는 입문서이고 재미삼아 읽어본 경향이 강했는데 예전에 개발을 업으로 삼기로 했던 어린시절이 생각나서 나름 읽을때 재미있게 읽을 수 있었네요. 한번쯤 개발에 발을 담가보고 싶으신데 고민하시는 분들에게는 추천합니다.

' > IT' 카테고리의 다른 글

코딩으로 세상을 바꿀 수 있다면  (0) 2025.03.30
개발자 원칙  (0) 2024.04.28