오유인페이지
개인차단 상태
★☆님의 개인페이지입니다
회원가입 : 17-07-17
방문횟수 : 493회
닉네임 변경이력
일반
베스트
베오베
댓글
3257 2018-12-31 15:21:28 0
초초심자가 질문드립니다. 파이썬 코딩 관련 [새창]
2018/12/25 21:43:26
축하합니다. 일단 성공하셨으니 이제 어떻게 프로그램을 개선할 것인가 생각해보세요 :) 예를 들어, 진지한수다님이 사용한 방법들에 대해 책에서 어떤 기능을 하는 것인지 찾아보세요. 다른 사람의 코드를 이해해보고 내 코드를 살펴보면 왜 다른 사람들이 이런 방식으로 코딩하는가 같은 것을 배울 수 있습니다.
3256 2018-12-30 19:47:38 0
나의 기본 Makefile [새창]
2018/12/29 06:24:34
감사합니다. 저는 CMake 를 사용해본 적이 없어요TT 그런데, CMake 도 Makefile 을 만드는 도구니까... Makefile 을 만들도록 할 때 이 트릭을 사용할 수도 있을 것 같네요 :)

기본적으로 Makefile 은 파일들 사이의 의존성과 파일의 수정 시간에 따라 동작합니다. 아마 CMakefile.txt 를 만들 때 의존성을 자동으로 추가하는 부분이 있었던 것도 같은데요... 보통은 Makefile 을 만들 때 의존성을 한 번 정적으로 규정하고 끝내는 경우가 많습니다. 여기에 사용된 트릭은 이 의존성을 동적으로 생성하려는 것이에요 :)

이 트릭에서는 각각의 C 소스 파일의 의존성을 담는 조각 파일을 만듭니다. 예를 들어, example.c 라는 파일로 example.d 라는 조각 파일을 만드는 것이죠. 그런데, example.d 라는 파일은 다시 example.c 라는 파일에 의존성이 있습니다. 그래서, example.c 라는 파일을 수정하게 되면 example.d 파일을 다시 만들게 됩니다. 이 example.d 라는 파일에 정의된 의존성을 바탕으로 바이너리를 만드는 것이죠 :)
3255 2018-12-30 08:27:39 0
리눅스 문의입니다.. 고수분이 계시려나.. [새창]
2018/12/28 20:37:51
DB로 자동생성되는 파일이란 것은 결국 root 가 만든 것이나 별로 다르지 않습니다. 제가 의문스럽게 생각했던 것은... /home/ABC 가 root 소유의 755 접근권한 디렉터리라면, /home/ABC/HOME 이란 디렉터리가 있다고 가정하고 /home/ABC/HOME 이란 디렉터리를 ABC 사용자의 홈 디렉터리로 변경하는 것과 /home 을 755 로 변경하는 것이 큰 차이가 있을까 싶은 점입니다. 다른 사용자에 대한 영향이 없다면 /home 의 접근권한을 750 이나 754 로 바꾸는 것을 생각해보는 것이고요.
3254 2018-12-29 18:22:08 1
초초심자가 질문드립니다. 파이썬 코딩 관련 [새창]
2018/12/25 21:43:26
파일이 탭으로 구분되어 있었군요. 진지한수다님이 작성한 코드는 공백으로 구분되어 있는 것을 가정한 것입니다. 만일 공백으로 구분되어 있었다면...

>>> with open('list.txt') as f:
... for line in f:
... splited = [x for x in line.strip().split(' ') if len(x)>0]
... print (splited)
...
['이름', '국어', '수학', '영어', '체육']
['김영희', '70', '90', '54', '87']
['박철수', '50', '65', '87', '98']
['홍길동', '40', '75', '47', '85']

라는 결과를 내었을 것입니다. 사실은 탭으로 구분되어 있는 것이 더 쉬워요. CSV 모듈을 쓰면 되거든요. "cvs 모듈을 import 해서 각각의 라인을 리스트로 변환할 수 있을 것 입니다"라고 말한 것은 탭으로 구분되었을 경우를 가정한 것이니까요 :) 자... 이렇게 바꿔보세요.

>>> import csv
>>> with open('list.txt') as f:
... for line in csv.reader (f, delimiter='t'):
... print (line)
...
['이름', '국어', '수학', '영어', '체육']
['김영희', '70', '90', '54', '87']
['박철수', '50', '65', '87', '98']
['홍길동', '40', '75', '47', '85']

이게 된다면... 진지한수다님의 splited 부분을 line 으로 바꾸면 될 거에요. 이렇게 자료를 가공하는 것을 파싱이라고 하고요. 또는...

>>> 성적표 = {}
>>> with open('list.txt') as f:
... for line in csv.reader (f, delimiter='t'):
... 성적표[line[0]] = line[1:]
...
>>> print (성적표)
{'이름': ['국어', '수학', '영어', '체육'], '김영희': ['70', '90', '54', '87'], '박철수': ['50', '65', '87', '98'], '홍길동': ['40', '75', '47', '85']}
>>> del 성적표['이름']
>>> print (성적표)
{'김영희': ['70', '90', '54', '87'], '박철수': ['50', '65', '87', '98'], '홍길동': ['40', '75', '47', '85']}
>>> for 이름, 성적 in 성적표.items():
... 성적표[이름] = [ int(성적[0]), int(성적[1]), int(성적[2]), int(성적[3]) ]
...
>>> print (성적표)
{'김영희': [70, 90, 54, 87], '박철수': [50, 65, 87, 98], '홍길동': [40, 75, 47, 85]}
>>>

처럼 해서 성적표 딕셔너리를 만드세요. 중간 중간 넣은 print 문은 확인을 위한 것이니까 나중에 생략해도 되고요. 이걸 람다와 맵으로 포장해도 되지만 일부러 하나 하나 썼습니다. 이렇게 성적표 딕셔너리가 만들어지면... 처음에 제가 말씀드린 방법을 써보세요.
3253 2018-12-29 02:03:38 0
리눅스 문의입니다.. 고수분이 계시려나.. [새창]
2018/12/28 20:37:51
음... test.txt 가 실제로는 존재하는데 보이지 않아서 존재하지 않는 것 처럼 보인다는 말씀인것 같은데... 신기한 현상이네요.

우선, ABC 사용자의 홈 디렉터리 아래 DEF 사용자가 파일을 만들 수 있는가하는 문제는 ABC 사용자의 홈 디렉터리의 접근권한이 어떻게 되어 있었는지와 관련이 있을 것 같습니다. DEF 사용자에게 접근과 쓰기가 열린 디렉터리였다면 test.txt 를 DEF 사용자가 만드는 것이 이상한 일이 아니죠. 또 다른 가능성은 test.txt 를 DEF 사용자가 만든 것이 아니라 root 사용자가 만들고 그 소유자를 DEF 로 바꾸는 경우입니다. 이것도 이상한 일이 아닙니다. 자동생성되는 파일이라고 하셨으니 root 사용자가 만든 것일 가능성이 더 크지 않나 싶네요.

디렉터리의 소유자와 관련해서 chown root /home/ABC 는 ABC 사용자의 홈 디렉터리를 root 의 소유로 하겠다는 말이네요. 이건 좀 가혹하지 않나 싶어요. 755 라면 root 이외에는 디렉터리에 접근과 읽기만 허용하겠다는 것인데... 그럼 그 사람의 홈 디렉터리라고 보긴 힘들 것 같네요. 질문에 대답은 되지 못하겠지만...
3252 2018-12-28 19:02:55 0
초초심자가 질문드립니다. 파이썬 코딩 관련 [새창]
2018/12/25 21:43:26
잘 되는 것 같군요. 이제 파일을 열고 라인별 출력이 가능해졌으니... 위에 올라온 소스에서 splited 를 출력하도록 해요. 이런 식으로 한 단위씩 잘라서 확인하다보면 될 것 같네요.
3251 2018-12-28 18:57:55 1
Java for문 테스트 [새창]
2018/12/28 13:13:07
재미있네요 :) 어쩌면...
https://stackoverflow.com/questions/256859/is-there-a-performance-difference-between-a-for-loop-and-a-for-each-loop

https://stackoverflow.com/questions/1879255/performance-of-traditional-for-loop-vs-iterator-foreach-in-java
가 도움이 될지도 몰라요. 우... 저는 읽다가 지쳐서...
3250 2018-12-28 17:28:48 0
초초심자가 질문드립니다. 파이썬 코딩 관련 [새창]
2018/12/25 21:43:26
일단 파일을 읽어서 그 내용을 그대로 출력하는 것 부터 시작하는 것이 좋겠습니다.

>> with open('list.txt') as f:
... for line in f:
... print (line)
...

부터 해보세요.
3248 2018-12-28 15:28:51 0
Java for문 테스트 [새창]
2018/12/28 13:13:07
sizeList 와 constList 의 테스트에서는 lst.get(j) 를 하고 있을 뿐 다른 스트링에 대입하지 않았잖아요. forList 테스트에서는 새로운 스트링이 하나 생기고요. 자바는 잘 모르지만... forList 태스트에 불리한 조건이 아니가 싶어서요.
3247 2018-12-28 14:43:58 0
Java for문 테스트 [새창]
2018/12/28 13:13:07
"foreach 방식은 속도가 안습임. 왜그러지? ㅡ,ㅡ;;;" -- 에... 추측하자면 객체생성 비용때문이 아닐까 싶네요. 얼마 전에 박싱과 언박싱에 대한 글을 봤는데... 비슷한 것 같기도 하고요.
3246 2018-12-27 18:34:03 0
[gcc] 의미없어 보이지만 의미심장한 (X)+0 그리고 함수 오버로딩 [새창]
2018/12/21 07:40:31
아... "container_of" 에는 0 이 나오지 않는데 "언뜻 생각하면 0 을 더한다는 것은 의미가 없어보입니다."라고 한 것으로 읽으셨나요? 서로 다른 이야기에요. "container_of"의 1을 고민해보다가 +0의 사용법에 대해 생각하게 되었다는 말이고요.
3245 2018-12-27 03:11:54 0
[gcc] 어셈블리 코드 보기 [새창]
2018/12/26 18:08:23
이 FPU 80 비트를 기억하는 것이... 그 때 정말 고민했었거든요TT 여기 저기 알아보고 물어보고 했더니, 메일링리스트에 등록되어 아직까지 관련 메일이 와요. 가끔 컴파일러 광고 메일도 오고요. 뭐... 이제는 읽지도 않지만 해제하는 것도 귀찮아서 그냥 메일을 받고 있어요. 우... 정말 오래된 일이네요. 예전이 그립기도 하고 :)
3244 2018-12-27 02:58:18 0
[gcc] 어셈블리 코드 보기 [새창]
2018/12/26 18:08:23
그런데... 때로는 최적화라는 것이 무엇을 하는지 알아야 될 때도 있어요TT 오래 전 일이라 어떻게 이런 일이 발생한 것인지 정확히 기억하지 못하지만... 최적화 옵션을 켜기 전에는 시키대로 계산하던 프로그램이 최적화 옵션을 켜면 이상한 계산값을 내던 적이 있었어요. 나중에야 FPU 는 80 비트고, 이것과 관련해서 계산값이 달라졌었던 것을 이해한 적이 있죠. 또, 다른 예로... CPU 의 캐시 영역을 벗어나지 않도록 크기에 신경쓰던 사람을 본 적도 있어요. 그 사람은 속도최적화를 켜면 오히려 느려진다고 하더라고요. 또... 메모리 얼라인먼트에 신경쓰던 사람도 있었고요.
3243 2018-12-27 01:17:02 0
[gcc] 어셈블리 코드 보기 [새창]
2018/12/26 18:08:23
하하. 그럴지도 모르죠 :) 그런데, 최적화라는 것은 일반적인 최적화라서요... 최적화한 다음 더 느려지는 경우도 있고, 잘못된 값을 내는 경우도 있어요TT 대개의 경우는 내가 빨리 실행될것을 예상하고 짠 코드보다 컴파일러가 최적화해주는 것이 더 좋은 성능을 내지만요.
< 이전페이지 다음페이지 >
1 2 3 4 5 >
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호