Linux의 shadow 파일을 간단하게 보겠습니다. shadow 파일을 보면, 유저 이름과 이상하게 긴 문자열이 있거나 !이나 *가 있는 것을 볼 수 있습니다. 그리고 뭔가 이상한 구분자가 상당히 많이 있다는 것도 볼 수 있습니다. 이 중 앞에 2개는 유저 이름과, 패스워드가 encrypted가 된 것을 의미합니다. 물론 $으로 구분된 무언가는 또 다른 뜻이 있지만, 이것은 밑에서 후술해 보도록 하겠습니다. 2번째 단락의 encrypted password를 보시면, 2번째 필드의 의미를 대략 짐작하실 수 있을 겁니다. 그러면, 먼저 cho1을 하나 추가해 보겠습니다. 그 다음에, shadow 파일에 어떤 내용이 들어갔는지 보겠습니다. 앞에 떡하니 !가 쳐져 있습니다. 이게 무엇인지 모르겠으니, 일단 지..
전체 글 검색 결과
이펙티브 자바에 나오는 깊숙한 내용은 나중에 하기로 하고, try with resources 문에 대해서 간략하게 언급해 보도록 하겠습니다. 닫아야 할 자원. 이것들은 생각보다 어렵지 않게 찾을 수 있습니다. Stream, DB connection 등이 이에 속합니다. 저 또한 프로그램을 이런 식으로 작성하곤 했습니다. 대충 A라는 친구를 새로 생성합니다. 이것을 새로 생성하면 내부적으로 리소스를 오픈하는 작업을 수행합니다. 흔히들 생각하는 인풋 스트림이나 DB connection 등이라고 생각하시면 됩니다. try 안에서 do work를 합니다. 그런데, try 내부에서 a.close를 호출하면 안 됩니다. 왜냐하면, 중간에 Exception이 걸려서, main 함수에서 catch가 되는 경우에, a...
사실, 저는 백준을 풀 때 define 문을 상수 정의할 때 빼고는 써 본 적이 없었습니다. 실무에서는 어떻게 쓸 지는 잘 모르겠지만요. 상수 정의할 때도 가끔씩 써서, 그리 많이 쓴 적은 없습니다. 물론, C언어 시험 볼 때에는 많이 썼겠지만요. 보통 넓이를 구하는 것은 define이 아니라, 함수로 쓰는 편입니다. 이것은, 배보다 배꼽이 더 커지기 때문에 그렇기도 합니다. 백준을 한참 할 때, 많이 본 질문 글 중 하나는 이것을 잘못 써서 맞았는데 왜 틀려요? 하는 경우였습니다. 전처리기에 대한 이야기는 나중에 정리할 때 한꺼번에 언급하기로 하고요. 오늘은 그냥 간단하게 개론만 보도록 하겠습니다. 먼저 상수 정의할 때에는 요긴하게 쓰입니다. 이것은 제가 세그 트리를 구축할 때, (1
링크는 c++의 vector의 push_back에 대해서 설명한 문서입니다. Complexity가 constant라고 되어 있는데요. 괄호가 떡하니 쳐져 있습니다. amortized time이라고요. 이게 왜 나왔는지부터 예를 들어서 이야기 보겠습니다. vector의 초기 size가 무한대이지 않는 이상 (기본적으로 적절한 size) 최악의 경우에는, O(vector의 size) 만큼 나올 겁니다. 만약에 n개가 있으면 O(n)이 나올 겁니다. 더 정확하게 말하면 linear time 입니다. worst case인 경우에는 그게 맞습니다. 기존에 n개의 item이 있었습니다. capaity 역시 n이였고요. 만약에 grow rate가 2인 경우에, 이 시점에서 push_back이 호출된 경우에, 2배로 ..
이번 시간에는 서버에 key 파일을 가지고 로그인 하게끔 설정을 해 보도록 하겠습니다. setting 파일도 하나 다룰 겸 말입니다. 먼저, 제 로컬에는 ssh 클라이언트와, git for windows, cygwin이 있습니다. ssh-keygen -t rsa는 rsa 알고리즘으로 public key와 private key를 생성합니다. 저는 C:\Users\cho의 .ssh 폴더에 생성했는데요. 이들을 모두 cygwin의 home 폴더에 그대로 복사했습니다. 다음에 권한 설정을 하나씩 해 주어야 하는데요. private, public 키가 한 쌍을 이루고 있어요. 이들은 각각 id_rsa와 id_rsa.pub인데요. 이 중에서 id_rsa는 나 말고 다른 사람이 보면 안 됩니다. 나 외에 다른 사람들..
최근댓글