python에서 os의 environ이 무엇을 담고 있는지 간단하게 알아보겠습니다. 먼저, cho로 로그인 한 쉘입니다. 변수 CHO의 값을 출력해 보니 3이 나왔습니다. 다음에 root 쉘로 로그인 했습니다. 마찬가지로 쉘 변수 CHO를 출력해 보니, 10이 나왔습니다. 여기서 중요한 것은 cho로 로그인이 된 쉘의 CHO와 root 쉘의 CHO의 값이 달랐다는 점입니다. 이제, os의 environ으로부터 변수 'GH'의 값을 얻어봅시다. 1.py에, 그러한 일을 수행하는 코드를 작성하였습니다. 단 두 줄이면 얻어낼 수 있습니다. 이 코드는 'GH'의 값을 얻어냅니다. cho로 로그인 한 쉘에서는 3을 출력합니다. 그런데, root로 로그인 한 쉘에서는 10을 출력합니다. 이를 토대로 추측할 수 있는..
OS 검색 결과
안녕하세요. 여행 갔다와서 오랫만에 글을 씁니다. 이번 시간에는 파이썬의 os에 있는 listdir에 대해 알아봅시다. 먼저, 함수 설명을 봅시다. 이 함수는 디렉토리 안에 있는 파일들의 목록을 리턴해 주는 함수입니다. 예제 프로그램을 봅시다. 먼저, main.py는 프로젝트의 root 폴더에 있습니다. os.path.abspath('./test_data')는 기준 경로 밑에 test_data 폴더의 abspath를 출력합니다. 프로젝트 구조를 볼게요. test_data 밑에 있는 파일은 디렉토리 1, 1.in, 1.txt, 2.txt입니다. 실행 결과만 보도록 하겠습니다. 1, 1.in, 1.txt, 2.txt를 출력하는데요. 기준 경로로 잡혀있는 것이 드라이브 C 밑에 Users 밑에 chokw 밑에..
Notepad++은 제가 많이 이용하는 편집기입니다. 대회 출제할 때에도 썼고, 검수할 때도 많이 썼습니다. 언어 편집기 기능도 있기 때문에, 컴파일러만 깔려 있으면 인텔리제이나 파이참이 없어도 쉽게 코딩할 수 있었기 때문입니다. 이 프로그램을 쓰면서 제가 많이 이용한 플러그인 중 하나는 Compare 였습니다. 기본적으로 제공되지는 않으므로, 설치하시면 됩니다. 설치는 그렇게 복잡하지 않습니다. 플러그인 관리에서 Compare를 찾고, 설치하시면 됩니다. 그러면, 제가 이 플러그인을 언제 어떻게 썼는지 시나리오로 알아보겠습니다. 가희야 거기서 자는 거 아니야 문제에서 제가 풀이 및 검수 코드로 acmicpc stack에 작성한 것들을 가지고 비교해 보겠습니다. 이 코드는 맞습니다. 그런데 이 코드가 자..
제가 세터였던 대회 문제들 중에서는 가희와 프로세스 시리즈가 있었습니다. 문제 제목을 보면 알 수 있듯, 해당 문제들은 cs 과목도 같이 복기하시면서, 코딩 테스트도 같이 준비하면 좋겠다고 생각해서 출제하게 되었습니다. 무엇을 물어보려고 저는 이 문제를 냈을까요? 눈치가 빠르신 분들은 아셨을 지도 모르겠지만, 영상에서 언급된 aging에 대해서 냈음을 알 수 있습니다. 여기서 조금 더 나가서, 상황을 일반화 시킬 수 있는지 묻기 위해서, 7번과 8번 문제도 같이 냈습니다. 기술 면접을 준비하시기 위해서 cs 과목들을 보셨다면, 우선순위 큐를 들어보셨을 겁니다. 문제에서 우선순위가 가장 높은 것을 선택한다는 것이 언급되었으니, 먼저 의심해 봐야 할 것은 우선 순위 큐를 써야 하나? 입니다. 혹은 정렬을 쓸..
안녕하세요. 이번 시간에는 race condition과 관련이 깊은 toctou에 대해서 알아보려고 합니다. 검사 시점과 사용 시점을 주의깊게 보시면 됩니다. 예제 프로그램을 하나 보겠습니다. 유저 객체 하나가 있습니다. Task는 유저 객체 하나를 받습니다. 그리고 Thread에 유저 객체 u가 들어간 task를 넘겨줌을 알 수 있어요. Thread를 다 돌리고, 유저의 포인트가 0보다 작아지면 u.getPoint()의 값을 출력하고 break를 걸어요. 여기서 질문. 0보다 작아지는 경우가 생길 수 있을까요? Task는 간단한 일을 수행해요. 단지, run에서 7포인트를 소비할 뿐이에요. consumePoint는 현재 포인트가 a보다 클 때, 현재 포인트에서 a를 빼게 됩니다. 사실, 우리는 결과를 ..
최근댓글