https://stackoverflow.com/questions/22924633/gitignore-is-not-ignoring-directories

 

.gitignore is not ignoring directories

What I did: I think there were some weird configurations from the github gui that caused this issue and prevented me from being able to easily use git from command line or even git-bash. I ended up

stackoverflow.com

Windows에서 개발환경 구축하다가 원인을 모르고 gitignore가 동작하지 않은 경험이 있어서 이를 어떻게 해결했는지 기록으로 남기기로 했다.

 

windows에서 wsl을 사용하지 않고 vscode로 코딩을 하다가, .gitignore파일을 echo "node_modules" >> .gitignore로 생성을 했는데 이것이 문제의 원인이었다.

 

이런식으로 파일을 생성하게 되면 .gitignore 파일의 텍스트 인코딩이 UTF-16LE로 설정되게 되는데, git에서 이 인코딩을 제대로 인식하지 못해서 gitignore에 파일 명을 넣어놔도 git에서 제대로 동작하지 못하는 것이다. 이를 UTF-8 인코딩으로 다시 바꾸어서 저장을 해주면 잘 동작하게 된다.

 

결론: Windows를 Linux처럼 쓰지 말자.

Windows에서 웹 개발 등으로 인해서 호스트 파일을 빈번하게 변경해야 하는 경우가 있다.

 

보통 변경 플로우가 다음과 같다

1. 관리자 권한으로 메모장 열기

2. 메모장으로 C:\Windows\System32\drivers\etc\hosts 파일 열기

- 심지어 드래그 & 드롭도 안됨

- 파일-열기 / 확장자도 모든파일로 변경한 뒤 선택

3. 변경 후 저장

 

별 건 아니지만, 자주하면 좀 귀찮기도 하다.

 

따로 바로가기를 만들어서 한번에 처리하도록 해보자.

 

바탕화면에서 마우스 우클릭을 한 뒤, 바로가기를 만들어 보자.

다음과 같은 값을 입력한다.

C:\Windows\System32\notepad.exe C:\Windows\System32\drivers\etc\hosts

이제 이 바로가기에 관리자 권한을 추가해야 한다.

속성이 뜨면 고급을 누른다.

이제 여기서 관리자 권한으로 실행을 체크한 뒤 저장하면 된다.

이제 이 바로가기를 실행하면 Hostfile을 바로변경할 수 있는 메모장이 뜨게 된다.

(UAC는 덤)

-----------------------------------------------------------------------------------------

- 이 글은 삼성청년SW아카데미에 대한 개인적인 소견을 밝히는 글입니다.

- 공개된 정보들과 개인적인 의견이 담긴 글로, 추측적인 내용들이 있을 수 있습니다.

- 이 글은 [2020-05-04]에 수정되었습니다.

-----------------------------------------------------------------------------------------

삼성청년SW아카데미(SSAFY)가 무엇이냐?

간단하게 말해서 삼성전자에서 청년들을 위한 SW 교육을 시켜주는 것이다. 심지어 무료임을 넘어서서, 매 달 교육지원금 100만원씩 준다고 한다. 이 돈으로 밥 사먹고 자취방 월세 내면서 SW교육에만 집중하게 해준다.

 

이 아카데미의 존재 목적은 교육생들의 취직이다. 따라서 청년 구직자들을 위한 아카데미이고, SSAFY(Samsung Software Academy For Youth: 통칭 싸피)를 하는 도중 취업에 성공하면, 그 즉시 싸피를 뛰쳐나간 뒤 회사로 직행하면 된다.

 

일단 매년 한 기수 씩 선발해서 총 5기까지 할 예정으로 되어 있는 듯 하며, 2020년 1월 현재 최근 3기가 입학했다고 한다. 그리고 각 기수별 교육 기간은 1년이다.

그러면 올해인 2020년 말 쯤에 4기 설명회 및 지원을 받을 것이고, 4기 합격자들은 내년 초 부터 다시 입학 한 뒤 1년간의 여정을 시작하게 될 것이다. 그리고 2021년 말 쯤에는 마지막 기수인 5기를 모집할 것이라고 예측해볼 수 있다.

 

 

5년동안 총 1만명의 수료생을 내는 것이 목표이고 6개월마다 새 기수를 뽑는다고 한다. 그러면 5년동안 10기 정도 까지 뽑을 것 으로 되고 그러면 각 기수별로 1000명 정도 뽑아야 한다.

 

1기가 500명이고 3기가 750명이라면, 이후에는 한 기수 당 1000명 보다 더 많은 인원수가 늘어날 것임을 예상할 수 있다.

 

SSAFY 수료생들이 나타나면서 어느정도 홍보가 되어 SSAFY에 지원하는 사람들이 많아지고 경쟁률이 높아지기도 하겠지만, 뽑는사람 수도 늘어나게 되므로 만약 관심이 있다면 열심히 한번 지원해보는 것도 나쁘지 않을 것 같다.

 

일단 뽑는 대상들, 즉 지원 자격은 만 29세 이하 4년제 대학 졸업자 혹은 졸업예정자이다.

만 29세 이하를 청년으로 본 듯 하다. 합격을 하게 되면 통학식으로 교육을 받게 되고, 아침부터 저녁까지 수업을 듣는 방식이다. 어떻게 보면 월급 100만원짜리 학원에 취직한 느낌이 들 듯 하다.

그리고 본인이 부족하다 싶다면 교육생들끼리 스터디를 만들어서 공부를 더 하거나 하는 분위기라고 한다.

 

다음 기수는 언제 모집하나요?

1기는 2018년 11월 2일까지 모집했다.

2기는 2019년 5월 10일까지 모집기간이었다.

3기는 2019년 11월 11일까지 모집기간이었다.

여태까지의 정보를 바탕으로 했을 때, 모집기간은 매년 4월말 ~ 5월 초 / 10월 말 ~ 11월 초 임을 추측할 수 있다.

그러면 다음 ssafy 4기는 2020년 4월말 ~ 5월 초 정도 되지않을까?

이 추측과 비슷하게 이번 ssafy 4기는 2020년 5월 11일 ~ 5월 25일이 모집기간이다.

ssafy 3기가 코로나 바이러스로 인해서 오프라인강의에서 온라인 강의로 변경되었다는 이야기는 있었다. 그래서 지금 열악한 상황이지만 ssafy 4기는 계획대로 모집이 진행될 것임을 알 수 있다.

 

그리고 다음 ssafy 5기의 모집기간은 10월 말 ~ 11월 초 임을 추측할 수 있다.

물론 과거의 DB에 기반한 정보이기 때문에 확실하지는 않다.

어디서 SSAFY에 관한 더 많은 정보들을 얻을 수 있나요?

SSAFY도 시험과 면접을 통해서 선발되다 보니, 더 자세한 정보들을 얻고 싶을 수 있다.

하지만 SSAFY 시험과 면접 내용, 내부 내용들은 다 대외비로 취급되며, 삼성에서 보안문제를 많이 신경쓰므로 왠만해서는 유출이 잘 되지 않을 것이다. 따라서 정보 구하기도 힘들 수 있다.

 

만약 가까운 지인중에 관련 정보가 있다면 슬쩍 힌트정도는 들을 수도 있을 수도 있다.

일단 공개된 정보로는 SSAFY 공식 사이트에 정보들이 있고, 매년 말 모집기간쯤에 설명회를 여러 번 한다. 그리고 인스타그램이나 인터넷 뉴스 등으로 많이 홍보를 하기 때문에, 그런 쪽에도 정보가 있을 수 있다.

 

인스타그램 계정 중 hellossafy라는 계정은 삼성청년SW아카데미 공식 계정이다. 그리고 해시태그로 삼성청년SW아카데미 등을 검색해도 다양한 글들이 보인다. 교육장 분위기 등도 한번 간접적으로 느껴볼 수 있는 방법이다.

 

그리고 공식 페이스북 페이지도 있으니 한번 참고해보면 좋다. 아마 4기 지원 설명회나 지원이 열리면 바로바로 업데이트가 될 듯 하다.

 

그리고 모집 시기 즈음 되면 공식 사이트도 자주 들러보자.

 

그리고 SSAFY 모집시기가 다가올 때 쯤에 항상 SSAFY 지원자들이 모인 카카오톡 오픈 채팅방이 있는데, 한번 검색해서 들어가 보면 가끔 꿀 정보들이 들어올 때가 있다.(익명의 수료생의 난입이라던지..) 그러니 꼭 찾아서 들어가보도록 하자.

 

SSAFY에 꼭 붙고싶은데 자신이 없어요!

나도 오다가면서 광고로 봤던 것 같은데 SSAFY에 합격하기 위한 학원도 존재한다고 한다. 취업 학원인 SSAFY에 선발되기 위한 학원이 따로 있다... 이제 그 학원을 붙기 위한 학원도 생기는 것이 아닌가 싶기도 하다.

SSAFY에서 많은 인원을 뽑긴 하지만, 그 SSAFY 조차도 경쟁률이 치열하기 때문에 이러한 현상이 생기는 것이지 않을까 싶다.

 

SSAFY를 수료하면 취직이 보장되나요?

그런 건 없다고 한다. 하지만 관리의 삼성 답게, 열심히 하지 않을 수 없는 환경들을 만들어 준다고 한다.

 

낙오되지 않으려면 빡세게 구를 수 밖에 없고, 그러다 보면 과거의 자신 보다는 훨씬 실력이 늘어 있게 된다고 한다.

 

해병대 병영캠프마냥 SW빡개발 캠프를 원한다면 지원해보는 것이 좋을 것 같다.

 

SW 취업을 위한 여러가지 학원들이 있는데, 이러한 학원들 수강 후기들을 보면 수업은 듣되 강제성이 없어서 스스로 공부를 잘 안하다가, 비싼 수강료를 내고 배웠는데 왜 나는 실력이 늘지 않고 이해되는게 별로 없느냐 하는 식의 후기들이 꽤나 많다.

하지만 SSAFY는 돈을 받으면서 듣는 교육이기도 하고 그에 따른 외부적 동기부여들도 주기 때문에, 학원 가서 돈 쓰고 사기당한 것 같은 느낌은 전혀 받을 일은 없을 것이다. 

SW를 단기간에 배우려고 하니까 힘들구나 라는 반응과, 그래도 많이 늘어서 많은 도움이 된 것 같다 라는 반응들이 나올 듯 하다.

 

추천할 만 한 프로그램인가요?

본인이 SW 개발자쪽으로 취직을 하려고 하고, 취직이 잘 안되는 상태(SW외 전공자나 SW전공자지만 실력이 부족한 상태)라면 무조건 추천한다. 이미 본인이 실력이 뛰어나서 이름있는 IT회사에 들어가거나, 본인이 만족할만한 기업에 들어갈 실력이 있다고 생각한다면 구태여 할 필요는 없다.

 

주변에 SSAFY를 했던 지인들의 이야기를 들어보면, 공부를 하려는 열정이 높은 사람들이 모여있어서 그런지, 매우 동기부여가 잘 되는 분위기라고 한다.

 

그리고 비전공자나 컴퓨터공학 전공자이지만 실력이 부족한 친구들은 그 부족한 실력 만큼 엄청난 노력을 쏟으면서 빡세게 공부하고 스터디를 한다고 한다. 빡세게 굴리지만 또 빡세게 구를 수 있는 환경을 만들어 주고, 그 만큼 아주 빠르게 실력이 늘어서 도움이 꽤나 된다고 한다.

 

컴공 Foundation 및 알고리즘 & 코딩 수업 및 다양한 주제의 프로젝트를 진행하며 교육시켜준다고 한다.

커리큘럼도 실무에 필요한 부분과 기본기들을 두루 가르쳐주므로 범용적이면서 괜찮은 것 같다.

 

그리고 혼자서 고독한 취준을 하는 것 보다는, SSAFY에서 같이 취준을 할 동료들을 많이 구하면 정신적으로도 많이 의지가 되고 좋은 기회가 될 것 같다.

 

고로, SW개발자로서 취직을 준비하고 있고, 공부나 프로젝트 등을 하면서 1~2주 취준이 아닌 조금 더 장기적인 관점에서(6개월 이상) 취준을 빡시게 할 계획이 있다면, 혼자 취준하는 것 보다 SSAFY에 지원해서 하는게 100배 이상 좋다. (같이 공부할 동료도 얻고, 지원금도 받고, 수업도 듣고, 컨설팅도 받는다.)

 

다른 비슷한 프로그램들이 있나요?

우아한 테크코스

배달의 민족으로 유명한 우아한 형제들에서 주최하는 우아한 테크코스라는 과정이 있다. 다만 뽑는 인원수가 훨씬 소규모이며, IT회사에 좀 더 특화되고 집중적인 커리큘럼을 갖고 있다고 한다. 금전적인 지원은 ssafy보다 덜 한 것 같은것이 조금 아쉽다.

 

네이버 커넥트 재단 - 부스트캠프

네이버 커넥트 재단에서 운영하는 교육 프로그램이다. 1기를 하고 나서 매년 2기, 3기 이런식으로 이어질 줄 알았는데, 했다 안했다 한다. 아마 첫 기수 운영하고 뭔가 결과가 마음에 들지 않았다던지 그래서 그런 거일지도 모르겠다.

네이버쪽에서 운영하는 프로그램이다 보니, 일단 선발부터 쉽지는 않고, 많은 인원을 뽑지도 않는다.

그리고 1기때와 지금 기수때와 방향이 이미 꽤 다르고 기수마다 계속 바뀌므로, 공고가 나오면 그때 그때 달라진 정보 등을 확인해보는게 좋을 듯하다.

 

 

 

 

------------------------------------------------------------------

https://woowacourse.github.io/

http://boostcamp.connect.or.kr/

https://linkareer.com/activity/17040
https://business.facebook.com/hellossafy

https://www.ssafy.com
https://www.hankyung.com/economy/article/2019092911561
https://news.samsung.com/kr/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%EB%A1%9C-%EC%84%B8%EC%83%81%EC%9D%84-%EB%B0%94%EA%BE%B8%EC%9E%90ssafy-3%EA%B8%B0-%EC%9E%85%ED%95%99%EC%8B%9D-%ED%98%84%EC%9E%A5
https://www.instagram.com/hellossafy/
https://www.instagram.com/explore/tags/%EC%82%BC%EC%84%B1%EC%B2%AD%EB%85%84sw%EC%95%84%EC%B9%B4%EB%8D%B0%EB%AF%B8/

요즘 SW에 대한 관심이 높아지면서, 한번 공부를 해 보려는 사람들이 많아지고 있다.

 

만약 대학교에서 컴퓨터공학과나 소프트웨어학과를 전공했다면, 자연스럽게 배울 수 있지만,

 

여러가지 사정으로 인해 해당 테크트리로 코딩에 입문하지 못한 사람들이 있을 것이다.

 

오늘은 이러한 사람들이 독학으로 코딩에 입문하려고 할 때 유용한 강의 사이트들을 추천해보고자 한다.

 

 

 

일단 이 글의 예상 독자는 "코딩을 아예 접해본 적 없거나", "거의 접해보지 않은" 일반인, 대학생들이 대상이다.

 

 

코딩에 대해 거의 모르는 사람들 중에서도 기본 선수 지식의 양이 다를 수 있는데

 

수준에 따라 크게 두가지 강의 카테고리를 나누겠다.

 

1. 블럭 코딩

실제 프로그래밍 언어를 바로 다루는 것이 아닌, 블럭 코딩을 다룬다. 코드 블럭을 조립해서 프로그래밍을 하는 방식으로

초, 중등생에게 좀 더 낮은 문턱으로 입문할 수 있는 장점이 있다.

 

또한 게임 형식으로 배우는 경우가 많아서, 초반에 흥미를 좀 더 가져올 수 있다.

 

단점으로는 이 블럭 코딩은 실제 프로그래밍과는 조금 차이가 있을 수 있다는 것이다.

 

2. 프로그래밍

곧바로 적용할 수 있는 프로그래밍에 대하여 배운다. 강의 내용이 대학교 수업 같은 느낌이 많이 들 수 있으며, 좀 더 전문적으로 강의 내용이 전달되지만, 조금 따분해 보일 수 있는 방식이다.

 

자신이 고학력자이거나, 좀더 제대로 전문적으로 배우고 싶다거나, 한다면 이 쪽 카테고리를 보는 것을 추천한다.

 

 

이 글에서는 프로그래밍쪽에 해당하는 사이트들을 다루겠다.

 

혹시 블럭 코딩에 관심있으면 이 링크를 클릭하면 된다.

 

 

프로그래밍 언어

코딩을 입문한다는 것은, 생에 첫 프로그래밍 언어를 배우는 것이라고 생각합니다.

일단 하나 이상의 프로그래밍 언어를 잘 다루게 되면, 그 다음 부터 다른 언어를 배우는 속도는 매우 빨라지고,

컴퓨터 공학과 컴퓨터에 대한 이해에도 많은 도움이 됩니다.

이러한 프로그래밍 언어를 입문할 만한 사이트들을 알아보겠습니다.

 

TCP School

http://tcpschool.com/

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

서울에 있는 코딩 교육기관인데, 간단한 온라인 강좌들을 웹 사이트에 공개해 놓았다.

하나하나 따라해보면 좋을 듯 하다.

 

SoEn:소프트웨어 공학 연구소

http://soen.kr 

 

SoEn:소프트웨어 공학 연구소

 

soen.kr

예전에 winapi.com 과 같은 도메인을 쓰던 사이트인데, 사이트 명을 바꾸면서 soen.kr로 도메인도 바꾸었다.

C/C++ 언어에 대한 무료 텍스트 강의가 공개되어 있고, 매우 자세하게 설명되어 있다.

C/C++를 어느정도 알고 있는 사람이라도 해당 문서들에 디테일한 부분에 대한 설명이 많아서, 한번 쯤 다시 공부할 겸 읽어볼 만한 문서들이 많다.

 

첫 입문 언어로써 C를 선택했다면, 해당 사이트에서 공부해 보는 것도 나쁘지 않다. (첫 언어로 C++은 비추!)

 

사이트 주인분이 안드로이드 관련 책도 냈던데, 해당 책도 사서 본 적 있다. 해당 책도 자세히 잘 설명되어 있어서 도움이 많이 되었다.

 

IT Note 블로그

https://www.it-note.kr/268

 

C Programming Language 문법

1. C 프로그래밍 언어는? 2. C언어 개발 환경 (실습 환경) 3. C언어의 컴파일 과정 4. C 소스 파일 구성 5. 주석문(Comment) 6. 식별자 명명 규칙 7. C 프로그래밍의 시작 - 함수 8. 변수와 상수 (정수형) 9. 변..

www.it-note.kr

C언어에 대하여 설명이 잘 되었다고 추천되는 블로그이다. soen.kr의 경우 꽤나 오래된 자료라서, 레거시 내용들이 조금 섞여있는데 비해 이 블로그 자료는 비교적 최신이라고 볼 수 있다.

 

모두의 코드

https://modoocode.com/

 

모두의 코드

C 언어 문법을 아시는 분들이라면, 씹어먹는 C++ 강좌를 통해 C++ 기초 부터 최근의 C++ 17 까지 모든 내용을 배우실 수 있습니다. C 언어와 C++ 의 기본적인 문법이 비슷하기 때문에, C 언어를 어느 정도 아는 독자를 가정하여 쓰여져 있습니다. 현재 강좌는 연재 진행 중이며, 총 44 개의 강좌가 준비되어 있습니다.

modoocode.com

C/C++ 언어 관련된 자료로 또 추천되는 사이트 중 하나이다.

블로그들 특성상, 어느정도 틀린 내용이 있을 수 있으나 전체적으로 틀을 잡는데는 도움이 많이 될 것이다.

 

 

컴퓨터 공학 입문

 영어권에서는 컴퓨터 과학(Computer science)이라는 단어로도 자주 쓰이는데 엄밀하게는 컴퓨터 공학과 과학은 다르긴 하지만, 여기서는 그러한 단어의 엄밀한 뜻 보다는 "프로그래밍을 지속적으로 하기 위한 기초체력과 같은 지식"라고 이해하시면 편하다. 우선 이러한 지식을 알려줄 수 있는 강의 사이트들을 추천해보도록 하겠다.

 

edwith

https://www.edwith.org/

 

에듀케이션위드 : edwith

에드위드(edwith)는 네이버(NAVER)와 커넥트재단(CONNECT)이 제공하는 온라인 강좌(MOOC : Massive Online Open Course) 교육 플랫폼입니다. 에듀케이션위드(education with) 에드위드(edwith)로 분야별 명품 강좌를 무료(Free Course)로 수강하세요.

www.edwith.org

네이버와 커넥트재단이 제공하는 MOOC 교육 플랫폼입니다. 간단한 회원가입만 하면 무료로 강의들을 들어볼 수 있습니다.

 

특히나 이 플랫폼에서 추천하는 양질의 강의가 있는데, 컴퓨터 사이언스의 세계 1Top이라고 볼 수 있는 MIT에서 공개한 MIT Open Courseware 강의에 한글 자막을 단 강의들이 있습니다.

 

강의를 들어보면, 과연 MIT답게 세계 최고수준의 강의력을 자랑하는데요, 영어강의라서 이해 속도가 떨어지는 단점을 edwith에서 달아준 자막을 통해 보완하면 매우 효율적으로 공부할 수 있습니다.

 

글을 작성하는 현재 기준으로는, MIT OCW를 번역한 강의는 3개 뿐이지만, 데이터 사이언스 기초 및 파이썬을 이용한 알고리즘 이해, 이 2가지 수업만 들어도 매우 탄탄한 기본기를 다질 수 있다고 생각합니다.

 

만약 영어 강의도 괜찮다면, MIT OCW 페이지에 직접 들어가서 원하는 강좌들을 찾아서 들어보는 것도 좋습니다.

또한 강의들은 유투브에도 일부 공개되어 있으므로 들어볼 수 있습니다.

 

 

코세라

https://www.coursera.org/

 

Coursera | Online Courses & Credentials by Top Educators. Join for Free

Learn online and earn credentials from top universities like Yale, Michigan, Stanford, and leading companies like Google and IBM. Join Coursera for free and transform your career with degrees, certificates, Specializations, & MOOCs in data science, compute

www.coursera.org

미국의 MOOC 플랫폼이다. 여러 명문대학교들의 강의를 온라인에서 들어볼 수 있다.

온라인 학위 과정도 있는데, 이 부분은 유료인듯 하다.

다양한 분야에 대하여 강의가 있는데 컴퓨터 과학이나, 데이터 과학이 우리가 배우려는 코딩과 관련성이 꽤 있는

과목들이라고 볼 수 있다.

 

강의들이 영어로 진행되기 때문에 영어 듣기, 읽기에 익숙하지 않다면 공부하기에 난감할 수 있다.

 

유다시티

udacity.com

코세라와 쌍벽을 이루는 MOOC 플랫폼이다. 둘다 무료였다가, 유다시티는 이제 아예 유료 서비스로 선회한 듯하다. 무료강좌가 없는 것 같으므로 여기에 쓰기는 하지만, 추천은 하지 않는다.

 

웹 개발

생활코딩

https://opentutorials.org/

 

opentutorials.org

오픈튜토리얼스 업데이트

opentutorials.org

흔히 생코라고 줄여서 많이 부르는 이 사이트는, 같은 이름의 페이스북 그룹 등도 있다.

모두 무료 강의이고, 목소리만 출연하는 영상 형식의 강의들이 있다. 이고잉이라고 하는 분이  만들고 운영하고 있다.

 

웹과 데이터베이스, 언어 등의 강의가 잘 설명되어 있으며, 왜 이러한 개념들을 알아야 하는지 등을 알기쉽게 잘 설명해준다.

 

 

w3schools

https://www.w3schools.com/

웹 개발 입문 시, HTML에 대하여 공부하는 것이 첫 단계라고 볼 수 있는데, 이 HTML을 공부할 때 유용한 사이트

 

항목 당 글자수가 많지 않은 편이라서, 빠르게 빠르게 모든 항목 슉슉하고 읽어보기에는 괜찮다. 영어로 된 사이트기 때문에 영어 읽기가 익숙한 사람에게 편하다.

 

코드카데미

https://www.codecademy.com/

 

Learn to Code - for Free | Codecademy

Learn the technical skills you need for the job you want. As leaders in online education and learning to code, we’ve taught over 45 million people using a tested curriculum and an interactive learning environment. Start with HTML, CSS, JavaScript, SQL, Pyt

www.codecademy.com

사람들이 코드아카데미라고 잘못 읽는 경우가 많은 코드카데미이다. 웹 개발을 배울 수 있으며, 단계별로 하나하나 따라해볼 수 있는 UI를 제공한다.

 

유명한 프로그래밍 교육 단체인 멋쟁이 사자처럼에서도 기본 조건으로 코드카데미 코스 몇개를 끝내고 오라고 하는 것으로 알고 있다.

 

웹 개발을 하려면 기초 단계중 하나라고 볼 수있다. 일부 강좌는 돈을 내야지 수강할 수 있다고 한다.

 

종합 강의 플랫폼

다양한 분야에 대한 강의가 모여있는 플랫폼들이다. 프로그래밍 언어부터, 안드로이드 개발, 웹 개발 등등의 강의들이 모여있다. 강의가 많은 만큼 유료 강의도 꽤 비중을 차지한다.

 

인프런

https://www.inflearn.com/

불러오는 중입니다...

국내 강의 플랫폼이다. 강사로 활동하고 싶은 사람들이 동영상 형태의 온라인 강의 및 강의 자료를 제작하여 업로드 하고,

 

수강을 원하는 사람은 일정 금액을 내고 강의를 구매하여 들을 수 있는 식이다. 무료 강의도 간간히 있다.

 

대체적으로 IT관련 강의, 개발, Excel 자동화 등의 강의들에 포커스 되어 있다.

 

강의들은 가격이 저렴하고, 기초적인 내용들의 비중이 큰 편이다.

 

 

에듀캐스트

https://educast.com/

 

에듀캐스트

에듀캐스트는 세상 모든 배움을 담는 온라인 강의 플랫폼입니다. 외국어, 프로그래밍, 비즈니스, 대학전공 등 무엇이든 에듀캐스트에서 배울 수 있습니다.

educast.com

인프런과 비슷한 느낌의 플랫폼이다. 무료 강의도 있고, 강의들이 저렴한 편이다. IT/프로그래밍 외의 분야에 대한 강의들도 꽤나 있다.

 

유데미

https://www.udemy.com/ko/

불러오는 중입니다...

위에서 소개한 강의 플랫폼과 비슷하지만, 국내 사이트가 아니다. 따라서 다 영어로 되어 있다.

 

강의들은 비싼 편인 것 같은데 이번에 블랙 프라이데이라고 할인을 하는 듯 하다. 관심있으면 들어보는 것도 괜찮아 보인다.

요즘 코딩(프로그래밍)에 대한 관심이 높아지면서, 한번 공부를 해 보려는 사람들이 많아지고 있다.

 

만약 대학교에서 컴퓨터공학과나 소프트웨어학과를 전공했다면, 자연스럽게 배울 수 있지만,

 

여러가지 사정으로 인해 해당 테크트리로 코딩에 입문하지 못한 사람들이 있을 것이다.

 

오늘은 이러한 사람들을 위한, 입문용 온라인 강의 사이트들을 추천해보고자 한다.

 

 

 

일단 이 글의 예상 독자는 "코딩을 아예 접해본 적 없거나", "거의 접해보지 않은" 사람들이 대상이다.

 

 

코딩에 대해 거의 모르는 사람들 중에서도 초,중,고등학생과 대학생 및 일반인으로 기본 선수 지식의 양이 다를 수 있는데

 

수준에 따라 크게 두가지 강의 카테고리를 나누겠다.

 

1. 블럭 코딩

실제 프로그래밍 언어를 바로 다루는 것이 아닌, 블럭 코딩을 다룬다. 코드 블럭을 조립해서 프로그래밍을 하는 방식으로

초, 중등생에게 좀 더 낮은 문턱으로 입문할 수 있는 장점이 있다.

 

또한 게임 형식으로 배우는 경우가 많아서, 초반에 흥미를 좀 더 가져올 수 있다.

 

단점으로는 이 블럭 코딩은 실제 프로그래밍과는 조금 차이가 있을 수 있다는 것이다.

 

2. 프로그래밍

곧바로 적용할 수 있는 프로그래밍에 대하여 배운다. 강의 내용이 대학교 수업 같은 느낌이 많이 들 수 있으며, 좀 더 전문적으로 강의 내용이 전달되지만, 조금 따분해 보일 수 있는 방식이다.

 

자신이 고학력자이거나, 좀더 제대로 전문적으로 배우고 싶다거나, 한다면 이 쪽 카테고리를 보는 것을 추천한다.

 

 

이 글에서는 우선 블럭 코딩 관련 사이트들을 다루겠다.

 

만약 프로그래밍 강의쪽에 관심이 있으면 이 링크를 클릭하면 된다.

 

엔트리

playentry.org

 

엔트리 - 소프트웨어 교육의 첫걸음

누구나 쉽고 재미있게 소프트웨어 교육을 체험할 수 있도록 블록 코딩 방식으로 만들어진 비영리 서비스입니다.

playentry.org

 

엔트리는 교육용 프로그래밍 언어 플랫폼이다. 블록 언어를 기반으로 해서, 블록을 조립하는 방식으로 동작하며

 

학습하기, 만들기, 공유하기로 구성되어 있다. 게임을 하듯 프로그래밍을 배울 수 있어서 초,중,고등학생이 처음 입문할 때

 

흥미있게 공부하기 좋다. 네이버에 인수되어 네이버의 '소프트웨어야 놀자'에서도 활용되고 있다.

 

 

Code.org

https://code.org/

 

컴퓨터과학을 배워 세상을 바꾸어 보세요.

Every student has the potential to change the world. Help them get started. #CSforGood

code.org

Hadi Partovi가 이끄는 비영리 단체로, 미국의 모든 학생들이 컴퓨터 과학을 배우도록 장려하기 위해 만들어진 사이트이다. 한국어도 어느정도 지원하고, 엔트리와 마찬가지로 블럭 코딩으로 게임과 같은 방식으로 프로그래밍을 재미있게 배울 수 있는 환경을 웹 상에서 제공한다.

 

공식언어는 영어이지만, 한국어를 선택할 수 있다.

 

 

 

 

 

스크래치

https://scratch.mit.edu/

 

Scratch - Imagine, Program, Share

Scratch is a free programming language and online community where you can create your own interactive stories, games, and animations.

scratch.mit.edu

 

MIT의 평생 유치원 그룹이 개발한 무료 교육용 프로그래밍 언어이다. 마찬가지로 블록을 이용해서 코딩이 가능하고

웹 사이트에 공유된 프로젝트 개수가 4200만개나 된다고 한다.

 

블럭 코딩의 원조격이라고 볼 수 있다.

 

위 스크린샷은 누군가 스크래치로 만들어놓은 슈퍼마리오 게임이다.

재게임 등을 만들며 재미있게 프로그래밍에 입문할 수 있고, 배우기 쉽게 고안되어 있다.

 

사이트의 공식 언어는 영어이지만, 한국어를 고를 시 한국어로 번역된 사이트를 사용할 수 있다.

 

앱 인벤터

http://ai2.appinventor.mit.edu/

 

http://ai2.appinventor.mit.edu/

 

ai2.appinventor.mit.edu

 

 

구글이 제공한 오픈소스 웹 앱으로, MIT에 의해 관리되고 있다.

 

위에 나타난 플랫폼들은 교육용 프로그래밍 언어의 성격이 짙고, 자체적인 프로젝트로만 만들 수 있는 것에 반해

앱 인벤터는 안드로이드 어플리케이션을 만들 수 있게 해 준다.

 

스크래치와 비슷한 GUI로, 사용자들이 객체를 드래그 앤 드롭해서 만들 수 있다.

 

 





글 최종 수정일 : 2019/11/13


개요

주변 지인에게 컴퓨터활용능력 1급(속칭 컴활) 자격증 강의를 좀 추천해달라고 질문을 받았는데 사실 잘 몰라서 이번 기회에 


좀 찾아보면서 여기에 정리해보려고 한다.


계속해서 내용을 추가 할 예정.




뭐 모든 자격증이나 시험들이 다 그렇듯이, 사람마다 기본 실력이 달라서 이미 엑셀 최고수에 전산관련 지식이 빠방하다면 


그냥 시험쳐도 붙을 수도 있고, 아니면 몇달씩 고생해도 떨어질 수도 있다.



컴활은 특히나 1급은 그래도 컴퓨터 자격증 중에서 꽤 난이도가 있는 편인데다가, 각종 여러 사기업/공기업에서 행정직무로


지원할 때 서류전형 시 가산점을 쏠쏠하게 주는 편이라서, 행정직을 목표로 한다면 따 놓으면 괜찮은 자격증 중 하나이긴 하다.









정익종 컴활 강의


보통 네이버 같은 곳에 "컴활 인강"이라고 검색하면, 광고를 빠방하게 넣은 유료인강들이 많이 등장하게 되는데, 정익종 컴활강의는 유료/무료 강의가 둘 다 있다.


당연한 이야기겠지만, 유료강의가 좀 더 양도 많고 디테일하게 잡아줄 것이다. 


하지만 무료강의만 듣고도 충분히 합격하는 사람 역시 존재할 것이다. (독학으로 붙는 사람도 있는 마당에~)



따라서 이제 소개하는 강의는 무료인강을 한번 들어보고 결정해도 되지 않을까 싶다.




정익종쌤 한방 컴활이라는 곳인데 일단 다음 카페가 있다. (링크는 하단에 첨부하였다)



들어가보니 대략 위와 같이 생겼다. 다음카페로 되어있고 딱 봐도 하나의 목적으로만 이루어진 카페같은느낌!!



일단 강의 금액을 알아보자.

좌측의 수강 금액 게시판에 가 보니, 1급 금액 / 2급 금액 글 딱 2개가 있다.


컴활 1급 강좌 수강금액을 알아보기 위해서 해당 글을 눌러보았다.



대략 위와 같은 가격이 나타나는데, 왼쪽에 무료강의라고 보이는 부분이 있어서 한번 눌러 보았다.



참고로 좌측 매뉴중에서도 아래쪽으로 쭈~~욱 내리면 무료강의 게시판이 있다. 저 링크를 클릭해서 들어와도 된다.


(아래 것은 워드강의이므로 위쪽 링크를 눌러야 한다.)



무료강의 게시판들 중에서 유투브 무료강의 관련된 글도 있는데, 들어가보면 다음과 같이 되어있다.


링크를 따라가서 유투브에서도 무료 강의를 볼 수 있다.



대충 둘러보니, 무료강의는 기출문제 해설과 개념 요약 정도의 강의가 있다.


돈을 지불하고 유료강의를 듣게 되면, 챕터별로 하나 하나 설명해주는 강의가 되는 듯 하다.



정익종 컴활 카페 링크는 다음과 같다.


http://cafe.daum.net/Compcafe


유투브 강의 링크는 다음과 같다.


https://www.youtube.com/playlist?list=PLMjRiP-gsilXrTrEQL-GEC9vHoMkXPsQs

코드포스 컨테스트를 치르고 나면 항상 결과가 궁금해지죠. 특히나 레이팅의 변화가 어떻게 될 것인지가 초유의 관심사 중 하나 일 것입니다.

 

Contest가 끝나고 System Test이 끝날 때 까지 기다린 뒤, 수 시간 정도 지나야지 레이팅 변화가 적용이 됩니다.

 

이를 미리 알아볼 수 있는, 즉 레이팅 변화를 예측하게 해주는 웹 사이트가 있는데요.

 

https://cf-predictor-frontend.herokuapp.com/

 

CF-Predictor

 

cf-predictor-frontend.herokuapp.com

 

위 링크로 들어간 뒤 본인이 참여한, 혹은 레이팅 변화를 예측해보고 싶은 대회를 선택한 뒤 기다리시면 됩니다.

 

참여한 모든 인원에 대한 데이터를 표로 한번에 보여주므로, 모바일에서 보는 경우 데이터 폭탄을 맞을 수도 있으니 주의 해주시면 되겠습니다.

 

 

https://codeforces.com/blog/entry/50411

 

CF-Predictor — Know your rating changes! - Codeforces

 

codeforces.com

 

해당 CF-Predictor를 만든 사람이 홍보하는 코드포스 블로그도 있습니다.

 

크롬 익스텐션으로도 있다고 하니, 관심있으면 설치해보시는 것도 좋을 것 같습니다.

 

https://chrome.google.com/webstore/detail/cf-predictor/ocfloejijfhhkkdmheodbaanephbnfhn

 

CF-Predictor

This extension predicts rating changes for Codeforces. It shows approximate deltas during and after the contest.

chrome.google.com

 

덧붙여서 코드포스 레이팅 시스템은 ELO 라는 많이 쓰이는 방식을 쓴다고 하니, 관심있으시면 아래 링크에서 좀 더 읽어보셔도 좋을 것 같습니다.

https://codeforces.com/blog/entry/20762

 

Open Codeforces Rating System [updated on October 2015] - Codeforces

 

codeforces.com

 

 

(레이팅이 떨어져서 심란한 차에 쓴 글입니다 ㅜㅜ)

알고리즘 문제를 풀다 보면 그래프를 그려봐야 하는 경우 

 

손으로 직접 그리면 번거롭고 노드 갯수가 많은 경우 그리기가 힘들 수 있는데, 이를 간단하게 해결해주는 사이트가 있다.

 

 

 

https://csacademy.com/app/graph_editor/

 

CS Academy

 

csacademy.com

 

csacademy라는 사이트는 코드포스와 탑코더처럼 온라인 알고리즘 콘테스트를 열어주는 그런 사이트인데, 거기 툴중에 그래프 에디터가 있습니다.

 

사용방법도 직관적이고, 유용합니다.

 

왼쪽에 있는 창에 Graph Data를 쓰면 됩니다. Node Count이런것들은 자동으로 생성되므로, 크게 신경쓰지 않아도 되고

 

한 줄에 하나의 숫자만 쓰면, Node가 있음을 선언하는 것이고, 한 줄에 두개의 숫자를 쓰면 왼쪽 노드 번호에서 오른쪽 번호 노드로 가는 Edge가 있는 것을 알려주는 것입니다.

 

무향/방향 그래프임을 위에 Undirected / Directed 버튼으로 결정할 수 있습니다.

 

 

오른쪽 트레이에 보면 상단에 5개 정도 패널이 있는데 각각 모드를 설정할 수 있습니다.

 

Force모드면 노드를 드래그 앤 드롭하면 탄력적으로 움직이고, Draw모드를 하면 이동하고 위치가 고정됩니다.

 

Edit모드는 이미지 상에서 노드 이름을 변경하거나 Edge의 Weight값을 결정하는 등 여러가지가 가능합니다.

 

특히나 Config 패널로 가서 Run Command -> Arrange as Tree로 하면 트리모양으로 그래프를 배열해줍니다.

 

싸이클이 있는 그래프이므로 완전한 Tree모양으로 배열해주진 않지만, 얼추 트리에 가까운 모양으로 배열해줍니다.

 

백문이 불여일견인 툴이므로, 접속해서 애용해봅시다.

제가 학부생때 많이 햇갈리던 개념이 있는데요, 64bit 운영체제, 32bit 운영체제, 64bit CPU, 32bit CPU 과 같은 개념들이었습니다. 

제가 알고 있는 개념들로 어느정도 나름 알기쉽게 정리를 해 보도록 하겠습니다.

 

컴퓨터의 워드 사이즈 (Word size)

갑자기 무슨 이야기냐 하면, 워드사이즈 라는 개념을 알아야지 64비트, 32비트 머신(CPU)나 운영체제(OS)에 대한 개념을 이해하기 쉽습니다.

 

워드라고 하면, 직역하면 단어이죠.

아래 위키백과에 따르면 컴퓨팅에서 워드라는 단어는 컴퓨터의 데이터 기본 처리 단위라고 되어있는데, 이 말 그대로 받아들이시면 됩니다.

https://ko.wikipedia.org/wiki/%EC%9B%8C%EB%93%9C_(%EC%BB%B4%ED%93%A8%ED%8C%85)

 

워드 (컴퓨팅) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 워드(word)는 하나의 기계어 명령어나 연산을 통해 저장된 장치로부터 레지스터에 옮겨 놓을 수 있는 데이터 단위이다. 메모리에서 레지스터로 데이터를 옮기거나, ALU을 통해 데이터를 조작하거나 할 때, 하나의 명령어로 실행될 수 있는 데이터 처리 단위이다. 흔히 사용하는 32비트 CPU(ARM 등)라면 워드는 32비트가 된다.[1] CPU을 개발할 때는 우선 처리단위부터 결정해야 레지스터,

ko.wikipedia.org

32비트, 64비트 하는 것은 워드 사이즈를 말하는 것입니다. 32비트 머신(CPU)라면 그 머신의 기본 데이터 처리 단위는 32비트가 되고, 64비트 머신이면 그 머신의 기본 데이터 처리 단위는 64비트가 되는 것입니다.

 

비트는 정보 처리의 단위니깐, 당연히 64비트 머신은 32비트 머신보다 한번에 처리할 수 있는 데이터의 크기가 2배가 되겠지요?

 

가능한 CPU와 운영체제 조합

32비트 64비트가 CPU에도 있고 운영체제에도 있습니다. 이분법적으로 나누어 생각해보면, 컴퓨터 시스템은 하드웨어와 소프트웨어가 있죠.

 

CPU는 하드웨어가 될 것이고, 운영체제는 소프트웨어가 됩니다.

 

그리고 CPU에 32비트, 64비트가 있고 운영체제에도 32비트, 64비트가 있는데 각자 HW / SW이므로 총 4가지 조합이 있을 수 있겠지요? 다음과 같이말입니다.

 

CPU 운영체제 가능여부 동작
32bit 32bit O 32bit
64bit X 불가능
64bit 32bit O 32bit (하위호환)
64bit O 64bit

 

위와같이 생각하시면 됩니다.

 

32bit CPU에는 64bit 운영체제를 설치할 수 없습니다. 대신 32bit 운영체제를 설치할 수 있고, 32bit 모드로 동작하겠지요.

 

64bit CPU에는 32bit / 64bit 운영체제를 둘 다 설치할 수 있는데, 다만 32bit 운영체제를 설치하면 32bit 모드로 동작하게 됩니다. 64평짜리 집을 사 놓고, 32평만 사용하는 그런 느낌이지요.

다만 가능은 하다(호환된다) 라고 보시면 됩니다.

 

이렇게 나중에 나온 더 신식인 녀석(64비트 CPU)가 이전에 나온 구식인 녀석(32비트 CPU)을 사용할 수 있게 해주는 것을 하위 호환성(backward compatibility)라고 합니다.

 

32비트 시스템과 64비트 시스템의 차이

이제 32비트 시스템과 64비트 시스템의 차이에 대하여 이야기해보도록 하겠습니다.

 

메모리 주소 공간 크기의 차이(Memory addressing space size)

 

일단 기본처리 단위가 다르다보니, 프로세서의 레지스터의 크기부터 차이가 납니다. 32비트 프로세서의 범용 레지스터의 크기는 32비트 즉 4바이트이고, 64비트 프로세서의 범용 레지스터의 크기는 64비트, 즉 8바이트입니다.

 

이렇다 보니, 프로그램 카운터(Program Counter)의 크기로 각각 4바이트 8바이트가 되는데요.

 

메모리의 주소 모드(address mode)는 기본적으로 바이트당 주소를 하나 할당하는 방식(byte oriented addressing)이므로, 32비트 머신은 최대 32bit의 메모리 어드레싱이 가능하게 됩니다.

 

//(2^32//)byte의 메모리 주소 공간을 갖는다고 보면 되는데, 이는 4GB에 해당하게 됩니다. 따라서 32비트 머신은 최대 4GB의 메모리밖에 사용할 수 없는 셈이죠.

 

지금 이 글을 쓰는 시점에도 Windows 10의 커널 메모리 사용량이 꽤 크기 때문에, 쾌적한 컴퓨터 사용 환경을 위해서 가정용 개인 컴퓨터(PC)에도 보통 8GB이상의 메모리를 사용하곤 합니다. 이러한 점을 고려했을때, 32bit 프로세서와 운영체제의 조합은 조금 열악한 환경이 될 수 있겠지요.

 

그렇다면 64비트 머신은 //(2^64//)인 16엑사바이트의 메모리 주소를 갖겠군요! 라고 생각하실 수 있겠지만, 실제로는 하위 48bit만 사용합니다. 256TB에 해당하는 어드레싱 모드 범위인데요, 왜 그런가 하면 16엑사바이트만큼 큰 양의 메모리 어드레싱이 필요하지 않기 때문이지요.

 

나중에 필요한 메모리 사이즈와, 실제로 그러한 거대한 크기의 메모리를 만들 수 있다면, 언젠가는 64비트 주소 공간을 다 활용할 수도 있겠지만, 적어도 지금은 아닙니다.

 

https://stackoverflow.com/questions/6716946/why-do-x86-64-systems-have-only-a-48-bit-virtual-address-space

 

Why do x86-64 systems have only a 48 bit virtual address space?

In a book I read the following: 32-bit processors have 2^32 possible addresses, while current 64-bit processors have a 48-bit address space My expectation was that if it's a 64-bit processor, the

stackoverflow.com

 

실행가능한 어플리케이션 종류

아까 CPU와 운영체제 예를 들어서 운용 가능한 조합과 동작되는 모드에 대하여 표를 보여드렸는데요. 이는 또 어플리케이션(응용프로그램)에도 적용이 되는 부분입니다.

컴퓨터 시스템 어플리케이션 구동 가능 여부 구동 모드
32bit 32bit O 32bit
64bit X 구동 불가
64bit 32bit O 32bit (하위 호환)
64bit O 64bit

아까와 비슷한 형태의 표 이죠? 32bit 컴퓨터 시스템에서는 64bit 어플리케이션을 구동할 수 없습니다.

하지만 64비트 시스템에서는 32비트 및 64비트 어플리케이션 구동이 가능하지요. 32비트 앱을 실행할 수 있도록 하위 호환성이 유지되고 있는 것이지요.

 

다만 32비트 앱을 구동하기 위해서는 32비트 앱에 맞는 라이브러리를 별도로 설치해야 하는 경우는 있을 수 있긴 합니다.

 

본인이 만약 64비트 윈도우를 사용중이라면, 윈도우즈 탐색기를 켜서, 기본 드라이브(일반적으로 C드라이브)로 이동을 하면 다음과 같은 디렉토리가 있는 경우가 많습니다.

Program Files가 2개가 있는데 하나는 (x86)이라는 게 있지요? 이 (x86)이라고 되어있는 디렉토리에는 32bit 응용프로그램들이 설치가 되어있습니다. 괄호가 없는 Program Files에는 64비트 응용프로그램들이 있지요.

 

x86이라는 프로세서 아키텍쳐는 32비트 머신입니다.

반면 x64나 x86-64는 64비트 머신입니다.

 

따라서 앱 등을 설치할 때 본인의 컴퓨터 시스템이 32비트 모드라면 x86을 다운받아야하고, 아니라면 x64/x86-64나 x86이나 아무것이나 받아도 둘다 설치는 가능하고, 가급적이면 64비트용을 받는것이 유리하겠지요.

 

성능 부분

32비트 프로세서가 64비트 프로세서로 넘어가면서 이것저것 바뀐 것들이 있습니다. 성능적인 부분이나 보안적인 부분이나 기타 등등 다양한 부분이 조금씩 바뀌었는데요.

 

32비트 머신을 사용한다면 이러한 새로운 Feature들을 사용할 수 없는 경우가 대다수입니다. 눈에 띄개 성능이 다르진 않더라도 64비트 머신을 사용한다면, 적어도 32비트 머신을 사용할 때 보다 손해보는 경우는 없다고 볼 수 있겠지요.

본 방법은 제가 수행한 방법으로, 환경마다 조금씩 방식은 다를 수 있습니다.

 

수행 환경과 버전

Desktop

Ubuntu 18.04 4.15.0-52-generic

 

iptime A2000UA Wirelss Lan 카드 USB 버전

 

일단 그냥 USB를 꼽았을 때는 인식이 되지 않아서, 해당 iptime 무선랜과 관련된 Linux Driver을 찾아보았습니다.

 

https://github.com/aircrack-ng/rtl8812au

 

구글링을 해 보니 어딘가에서(링크는 지금 기억이 안납니다) 다음 커맨드로 드라이버 소스를 받아서 빌드를 해보라고 합니다.

 

sudo apt install -y build-essential bc git
git clone https://github.com/aircrack-ng/rtl8812au -b v5.1.5
cd rtl8812au/
make
make install

그리고 이제 생성된 커널모듈파일(*.ko)을 modprobe 명령어로 적재를 시키려는데, 안됩니다...

 

modprobe 8812au

위 명령어를 치는데

modprobe : required key not available

대충 뭐 이런식으로 에러가 납니다.

 

이전에 dkms인가 그거를 이용해서 해볼려고 Secure Boot 뭐시기가 설치가 되었는데, 그거때문에 전자서명이 되지 않은 커널 모듈파일(ko)은 로딩이 안되는 모양입니다.

 

http://www.onurmark.co.kr/?p=726

 

Ubuntu 16.04에서 secure boot로 인한 module 적재 문제 – Developer Story

Secure Boot 최근 OS는 Secure boot라는 표준을 지원한다. PC가 부팅되는 과정에서 신뢰할만한 모듈(EFI 응용 프로그램, firmware, driver)인지를 전자 서명(Signature)을 통해 확인하는 방법이다. 이 전자서명이 유효할 경우에만 PC를 부팅하고 OS로 제어를 넘겨주게 된다. BIOS 에서 해당 항목이 활성화되어 있고 OS에서 해당 기능을 지원하는 경우에 동작한다. 예제 프로그램 #include #include int

www.onurmark.co.kr

 

그래서 위 글을 참조해서, 인증서를 하나 만든 뒤, 인증서를 등록하고 이를 이용해서 전자서명을 해 주었습니다.

 

openssl req -new -x509 -newkey rsa:2048 -keyout ~/Key/MOK.priv -outform DER -out ~/Key/MOK.der -nodes -days 3650 -subj "/CN=onurmark/"
mokutil --import MOK.der
/usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ~/Key/MOK.priv ~/Key/MOK.der /lib/modules/$(uname -r)/kernel/drivers/net/wireless/8812au.ko
modprobe 8812au

대략 위 명령어를 순차적으로 입력하니 모듈이 잘 들어갑니다.

첫번째 줄은 아무 인증서를 만드는 과정이고요, ~/Key라는 디렉토리가 생성되어 있어야지 에러가 나지 않습니다.

 

두번째 줄은, 만든 인증서를 Secure Boot에서 신뢰하도록 등록하는 과정입니다. 이 과정에서 친 패스워드는 다음 재부팅 시 입력을 해 주어야 하므로 잘 기억해 놓도록 합니다.

 

세번째 줄은, 8812au 커널 모듈 파일을 해당 인증서로 서명하는 과정입니다.

 

마지막 네번째 줄은 해당 모듈을 적제하는 과정입니다.

 

 

modinfo 8812au

요걸로 모듈이 잘 들어갔는지 확인할 수 있습니다.

뭔가가 우르르 나오면 된 것이겟죠?

 

그리고 ifconfig를 치니, 이전에는 보이지 않던 wireless network inferface가 나타납니다.

 

그리고 기존에 시도했던 dkms로 로드했던 모듈들은 dkms status로 확인한 뒤 dkms remove로 몽땅 없애버렸습니다.

 

 

무선랜 잡는거에 삽질을 좀 해서 답답했는데, 어쨋든 해결을 하니 기분이 좋네요.

 

저랑 비슷한 경우가 별로 없으실 것 같지만 혹시나 비슷한 상황이실 경우 참고하여 문제 잘 해결하셨으면 하는 바람입니다.

+ Recent posts