Skip to content

기글하드웨어기글하드웨어

커뮤니티 게시판 : 아주 기본적인 네티켓만 지킨다면 자유롭게 쓸 수 있는 커뮤니티 게시판입니다. 포럼에서 다루는 주제는 각각의 포럼 게시판을 우선 이용해 주시고, 민감한 소재는 비공개 게시판이나 수상한 게시판에, 홍보는 홍보/외부 사용기 게시판에 써 주세요. 질문은 포럼 게시판의 질문/토론 카테고리를 사용해 주세요.

잡담
2016.08.11 06:52

프로그래밍 근황

조회 수 569 댓글 18

1.

며칠 동안 포인터 문제가 생긴 줄 알고 열심히 원인을 찾았으나 보이지 않아서 종이로 출력해서 한줄 한줄 뜯어보고 있었습니다. 그런데 제가 나무위키 문법을 HTML로 변환하는 함수 부분의 리턴 값의 자료형을 short을 썼더군요. 그런데 나무위키 최장 길이 문서는 short범위를 아득히 초월했고, short 가 오버플로우를 일으켰습니다.

2.

short 문제를 해결하고 나서 mdxbuilder에서 오류가 나길래 출력된 파일을 뜯어보았습니다. 그런데 태평양 같이 넓은 NULL 문자로 가득찬 영역이 있었어요. 해결할려고 소스를 보니까 손을 못대겠어요. 사실 멀티쓰레딩을 OpenMP로 구현해놓고 별 문제 없는줄 알았는데 첫 쓰레드를 제외한 출력 버퍼가 비어 있었어요.(고로 문서의 대부분이 공백...) 해결하려고 해도 도통 OpenMP의 메커니즘을 모르겠고 파일을 배포할 떄 라이브러리를 같이 넣어야 한다는 것이 귀찮아서 Pthread로 갈아탔습니다. 이제 그냥 단일파일로 실행할 수 있겠죠

3.

Pthread로 다시 작성하고 나서도 포인터 오류가 나길래 코드를 찬찬히 살펴보았으나 기존 코드와 근본적으로 동일해서 몇번을 살펴봤습니다. 그런데 사실 다른 문제도 아니고 쓰레드 번호 문제였습니다. 쓰레드 번호가 종료된다고 해서 0부터 할당하는 구조가 아니더군요. 0,1,2,3,4,5,6,7,8,... 로 증가하네요. 그래서 Cdoc[CORE]로 선언하고 Cdoc[0],Cdoc[1],~~,Cdoc[CORE-1] 에 저장된 동적 할당 메모리 포인터를 사용하는 부분에서 Cdoc[15]같은 존재하지도 않는 변수를 불러오고 있었어요. 그래서 해결을 위해 쓰레드 번호를 Cdoc[(CORE로 나눈 나머지)] 로 구현해 놓았습니다. CORE 값이 4이니 Cdoc[0],Cdoc[1],Cdoc[2],Cdoc[3] 밖에 없으므로 쓰레드 번호를 4로 나누면 0,1,2,3 밖에 나오지 않겠죠. 그래도 나중에 쓰레드 번호가 연속이 아닌 것을 대비해야 할지도 몰라요.

4.

아직도 mdxbuilder에서 Invalid keyword at position: (숫자) of the source file 가 뜨면서 변환해주지 않네요. 분명 Python 으로 만들 떄는 원인을 알고 있었던 것 같은데 기억이 나지 않네요. 그래도 저 숫자 자리에 보면 뭐가 문제인지 알 수 있겠죠. 그래서 Hexedit을 써서 그 위치를 찾아보니 웬 평범한 문서가 나와서 당황했습니다. 그런데 갑자기 "설마 나무위키 문서 내용 중에 < 나 > 가 들어가서 간섭하는 것이 아닐까?"하는 직감이 들어서 테스트해 보았으나 이것도 에러가 나네요. 다시 Hexedit으로 확인해 보니 문서 이름 앞에 이상한 문자가 들어가서 문제가 생긴 것이었어요. 이제 프로그램 자체에서 에러를 처리하도록 조치를 취해야겠어요.

5.

변환 결과창을 보니 문서를 대거 스킵해 버린 듯 해요. 어디서 문제인지는 모르겠어요. 그런데 더 큰 문제가 있었어요.

프로그래밍 근황b1.PNG

몇몇 문서가 최대 쓰레드 수만큼 분신술을 쓴 듯 해요. 이런. 심지어 개행도 안 되어 있어요.

 

무서운 말 : Trust the programmer.



  • profile
    쮸쀼쮸쀼 2016.08.11 07:29
    C언어로 멀티쓰레드 프로그래밍이라니 어려운 거 하신다…
    정 병행 프로그래밍을 하고 싶으시면, 차라리 다른 언어로 시도하시는 게 어떨까 싶네요.
  • ?
    퀘윈 2016.08.11 09:08
    멀티쓰레드를 사용하는데 C를 쓴다기보다는 C를 쓰고싶은데 멀티쓰레드도 쓰고 싶어진거에요
  • profile
    title: 흑우허태재정      본업보다는부업 2016.08.11 08:55
    프로그래밍은 초기 기획부터 잘 잡지 않으면 너무 어렵더군요. 내가 어딜보고 무얼 고치고 있는지도 잊어버리는..ㅜㅜ
  • ?
    퀘윈 2016.08.11 09:09
    기획은 잡아놨는데 하나씩 잘못 적어서 고생하고 있어요. 예를 들자면 for가 아니라 while을 적어놓는 경우 같은거요.
  • ?
    므시므시      닉네임만 이렇지 MSI와 별다른 관계는 없습니다(핳핳) 2016.08.11 10:05
    이러니 여러분은 C++을 멀리하고 python을 쓰시는게 좋습니다(?)
  • ?
    퀘윈 2016.08.11 10:07
    Python으로 짠 프로그램을 처음부터 C로 다시 작성중입니다!
  • ?
    므시므시      닉네임만 이렇지 MSI와 별다른 관계는 없습니다(핳핳) 2016.08.11 10:06
    멀티스레드 꼭 써야할만큼 속도가 중요한 상황이 아니라면 차라리 안 쓰는 걸 추천드려요.
    써야 한다면 락이라던지 큐라던지 풀이라던지 신경쓸게 많아서.....
  • ?
    퀘윈 2016.08.11 10:07
    그냥 해보는 겁니다!
  • profile
    남겨진흔적 2016.08.11 12:29
    멀티쓰레드 최적화 제대로 안시키면 싱글쓰레드로 돌리니만못하는 속도가 나오기도합니다..
  • ?
    퀘윈 2016.08.11 17:07
    !!!!!
    이미 그런 경고를 많이 보긴 했지만요
  • ?
    포인트 팡팡! 2016.08.11 17:07
    퀘윈님 축하합니다.
    팡팡!에 당첨되어 10포인트를 보너스로 받으셨습니다.
  • profile
    세라프 2016.08.11 10:15
    처음부터 구조를 잘 잡고 들어가지 않으면 나중에 버그 하나 고치면 버그가 2개이상 발생하는 놀라운 기적을 경험할 수 있습니다. 흔히 사이드이펙트라고 하죠.
  • ?
    퀘윈 2016.08.11 10:25
    생각해 보니 당해본 적이 많네요;;
  • profile
    쮸쀼쮸쀼 2016.08.11 10:56
    그러니 우리는 “사이드이펙트”를 최소화하는 함수형 프로그래밍을 해야 합니다 (?!)
    참고 :
    https://medium.com/@jooyunghan/%ED%95%A8%EC%88%98%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-fab4e960d263
    https://medium.com/@jooyunghan/%EC%96%B4%EB%96%A4-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%96%B8%EC%96%B4%EB%93%A4%EC%9D%B4-%ED%95%A8%EC%88%98%ED%98%95%EC%9D%B8%EA%B0%80-fec1e941c47f
  • ?
    퀘윈 2016.08.11 13:06
    그런데 이미 무의식 중에 모든 입력을 입력 변수로 만들어 놨어요! 만세!
  • profile
    남겨진흔적 2016.08.11 12:28
    멀티쓰레드프로그래밍은 정말 어렵습니다.. 문법으로 보나 로직으로보나 아무 이상없는 코드가 오류가 날때도 있기때문에..
  • profile
    Henduino      The Power of Dreams. 2016.08.11 16:21
    C 모토가 "프로그래머를 믿자"....

    이말이 제 무서워요.. 실행된다고 안도하면 안되요..ㅜㅜ
  • ?
    퀘윈 2016.08.11 17:04
    출력 파일이 엉망인 걸 보고 알았습니다.
    컴퓨터는 시킨 것만 해요

작성된지 4주일이 지난 글에는 새 코멘트를 달 수 없습니다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
38513 핫딜 [큰웃음] 샌디스크 포터블SSD 129,000 2 file Gorgeous 2020.05.22 629
38512 잡담 기사같은 소설쓰는 법을 배우고 있습니다. 7 타미타키 2020.05.22 402
38511 퍼온글 MBTI 테스트 희망/절망편 25 file title: AI기온 2020.05.22 8510
38510 잡담 이 과자 드셔보신분 있나요? 8 file 아리스 2020.05.22 470
38509 잡담 눈뜨자마자 일어나기 귀찮아서 기글부터 눌렀는데 2 file 고자되기 2020.05.22 342
38508 잡담 카트라이더 러쉬 플러스 재미있네요. 8 file Marigold 2020.05.22 671
38507 퍼온글 오늘의 Epic 6 file Marigold 2020.05.22 710
38506 잡담 사마귀에 대한 고찰 11 SPA게티 2020.05.22 509
38505 잡담 비싼 공유기를 찾는중이었는데... 30 file 노예MS호 2020.05.22 1282
38504 잡담 바퀴벌레 너무 싫어요... 9 title: 가난한까마귀 2020.05.22 574
38503 잡담 CRT 색수차 조정 4 file title: 저사양뚜까뚜까 2020.05.22 443
38502 핫딜 [지마켓] 미도 오션스타 등 시계 20% 할인 6 file title: 부장님파인만 2020.05.22 470
38501 핫딜 [빅스마일] 6, 7, 8번 부위 LA갈비 1kg [17,760원... 10 쿤달리니 2020.05.22 281
38500 핫딜 [빅스마일] 레노버 탭 M8 WiFi 32GB [149,000원] file 쿤달리니 2020.05.22 516
38499 핫딜 [빅스마일] 갤럭시탭 S6 5G 128G [747,200원] 2 file 쿤달리니 2020.05.22 1030
38498 퍼온글 고양이 식빵 모음 6 file Gorgeous 2020.05.21 508
38497 방구차 콘로 셀러론 420 7zip 방구차 + Radeon X300 SE PCIe 4 file mendocino 2020.05.21 170
38496 잡담 오늘따라 윈도우 업데이트가 유딜리 오래걸리는군... 11 file 포도맛계란 2020.05.21 310
38495 잡담 스피커를 바꿔보았습니다. 15 file 야메떼 2020.05.21 351
38494 방구차 아래쪽 케이크 보고 방금 사왔습니다 3 file title: 폭8애옹 2020.05.21 288
38493 핫딜 [지마켓] 삼성 T5 SSD 1TB \145,270 2 file Retribute 2020.05.21 428
38492 핫딜 [위메프] QCY T1 TWS 무선 이어폰. 11,900원 9 낄낄 2020.05.21 510
38491 잡담 뜨X쥬르 케이크를 오랜만에 먹었어요 10 file 아리스 2020.05.21 365
38490 잡담 한놈만 걸려라.RAM 13 file title: AMDpoin_:D 2020.05.21 1042
38489 잡담 AS후기 한성이 한성했습니다. 26 file 오버쿨럭커 2020.05.21 11182
38488 퍼온글 일본은 코로나로부터 안전합니다 30 file Gorgeous 2020.05.21 1102
38487 퍼온글 '실물 깡패' LG 벨벳…"이쁘다" 입소문 ... 18 Elsanna 2020.05.21 858
38486 잡담 중국어를 배우기 시작한 감상 12 title: 부장님호무라 2020.05.21 535
38485 잡담 둘째. 7 file 노코나 2020.05.21 329
38484 장터 아이폰 5s나 se 1세대 구합니다 9 짭제 2020.05.21 338
목록
Board Pagination Prev 1 ... 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 ... 2764 Next
/ 2764

최근 코멘트 30개
uss0504
04:03
냥뇽녕냥
03:52
uss0504
03:51
냥뇽녕냥
03:51
Neons
02:20
까마귀
02:06
Neons
01:46
메이드아리스
01:41
메이드아리스
01:36
Loliconite
01:29
Loliconite
01:27
Neons
01:23
Loliconite
01:21
낄낄
01:11
Loliconite
01:10
카토메구미
00:59
낄낄
00:55
이유제
00:51
연금술사
00:48
노예MS호
00:47
연금술사
00:39
아스트랄로피테쿠스
00:36
Lynen
00:29
아이들링
00:20
스와마망
00:16
Kylver
00:15
포인트 팡팡!
00:14
슬렌네터
00:14
연금술사
00:14
이게뭘까
00:08

MSI 코리아
한미마이크로닉스
더함
AMD

공지사항        사이트 약관        개인정보취급방침       신고와 건의


기글하드웨어는 2006년 6월 28일에 개설된 컴퓨터, 하드웨어, 모바일, 스마트폰, 게임, 소프트웨어, 디지털 카메라 관련 뉴스와 정보, 사용기를 공유하는 커뮤니티 사이트입니다.
개인 정보 보호, 개인 및 단체의 권리 침해, 사이트 운영, 관리, 제휴와 광고 관련 문의는 이메일로 보내주세요. 관리자 이메일

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소