오유인페이지
개인차단 상태
BePositive님의 개인페이지입니다
회원가입 : 11-09-19
방문횟수 : 1489회
닉네임 변경이력
일반
베스트
베오베
댓글
140 2014-03-08 03:35:32 1
printf() 랑 cout? [새창]
2014/03/08 01:58:53
cout 쪽이 객체에 대해서 ostream 에 대해 오버로딩 가능하니 객체 출력할 때는 편하긴 하고, 그냥 기본 자료형을 어떤 짜여진 폼에 맞춰 출력할 땐 printf 가 편해요. 객체지향이라 printf 따위는 구시대라느니 cout 은 무겁다느니 그런 거에 얽매이지 말고 손에 잡히는 거 편하게 쓰세요.
139 2014-03-08 01:30:07 0
오늘 하루종일 만든것... (똥게로 갈것인가) [새창]
2014/03/08 00:58:39
이...이게 뭐야 ㅋㅋㅋ
138 2014-03-07 23:32:56 5
코드 스타일 교정을 받고싶습니다. [새창]
2014/03/07 22:40:39
저는 핑크마카롱님이 말씀하신 것과 좀 다른 면에서 말씀드릴께요.

코딩 스타일이라고 하면, 회사 같은 데서 말하는 코딩 스타일 가이드라인 말씀하시는 건가요? 일단 학부생이라고 했을때, 저는 이것저것 해보라고 말씀드리고 싶네요. 헝가리안이든, 변수에 언더바를 넣든 말든, 변수를 카멜케이스로 하든 전 별로 크게 의미가 없다고 생각합니다. 그런 건 협업 할 때나 하는 거지 혼자 프로그래밍 하는데 굳이 그런 빡센 룰에 얽매일 필요는 없어요. 사실 사람마다 관점이 다르고 이건 취향의 문제거든요.

define? 써도 됩니다. 그것도 취향 문제죠. const 변수 쓰면 타입에 더 안전하다는 장점이 있습니다만 크리티컬한 문제가 아니에요. 적절히 쓰세요.
struct에 typedef? 그것 또한 자기 맘입니다. typedef 안한다고 해서 문제가 생기는 건 아니에요.

제가 볼 때는 주석이 너무 많습니다. 굳이 이렇게 빡세게 주석을 써야 할지 좀 의문이 드네요. 주석이 있으면 좋지만, 주석이 필요 없게 코딩하는 것이 좋습니다. 필요한 부분에 적절히 주석을 다는 게 좋죠.

제가 볼 때는 변수 이름 잘 짓는 거랑 프로그램 설계를 다지는 것이 더 중요해 보이네요. 제 생각을 적어 보자면:

** double fuel_efficiency로 변수 이름으로 fuel effiency가 있고 구조체 이름도 fuel_efficency가 있네요. 이거 좀 헷갈리죠?

** 소스를 보니 연비 계산하는 프로그램이고, 텍스트 파일에서 자료를 받아 처리하는 프로그램으로 보입니다.
핵심 로직은 연비 계산이죠. 그런데 소스를 보면 쓸데없이 텍스트 파일 입출력에 더 신경을 쓰고 있어요. txt_check이나 receive_source는 왜 저렇게 복잡하게 있어야 하나요? 대략 예상을 해 보니 텍스트 파일에 한 줄에 하나씩 출발지점, 도착지점, 사용 연료의 세 파라미터가 들어가네요.

입력값은 누가 딱 저렇게 정해준 건가요? 바꿀 수 없는 상황이라면 이렇게 작성하는 게 맞지만요.. 만약 자기가 마음껏 정해줄 수 있었다면 전 아래처럼 했을 겁니다.

- 텍스트 파일 내에 한 줄로 간단하게 공백 하나로 구분하는 식으로 입력값을 구성했을 겁니다 이렇게요.
1234 1274 10
- 그래서 세 개의 정수형이면
fscanf(fp, "%d %d %d ", &st, %ed, $fuel);
이 정도로 자료 입력 부분을 간결하게 구성했을 겁니다. 핵심은 연비 구하는 코드이니 그것만 잘 보이면 될 겁니다. 다른 건 이정도 CLI 프로그램서 낭빕니다.
- 입력이 텍스트 세줄로 가정했는데, N줄의 입력에 대해서는 처리할 수 없을까요? 저는 충분히 가능하리라 생각하는데요
137 2014-03-07 21:42:22 0
포인터의 벽? [새창]
2014/03/07 21:39:27
Roise님! 그게 탄탄하게 잘 잡힌 개념과 기본 지식이 가진 위력이죠. :)
136 2014-03-07 21:08:18 0
함수와 메소드의 차이가 뭔가요? [새창]
2014/03/07 20:21:02
서브루틴, 함수 - 펑션(function), 메소드, 프로시져라고 하는 건 프로그램 중간에서 다른 곳으로 잠시 분기해서 정해진 역할을 하는 걸 말하죠. 함수'라는 말은 수학적인 용어고 객체지향 등에서는 객체의 동작을 일컫는 말에서 메소드라고 그래요. 근본적으로는 같아요.
135 2014-03-07 20:41:11 0
함수와 메소드의 차이가 뭔가요? [새창]
2014/03/07 20:21:02
별 차이 없어요.
134 2014-03-07 19:40:30 0
C 초보가 흔히 하는 삽질성 코드에 대해 조언을 드립니다. [새창]
2014/03/06 23:01:55
우억 댓글이 좀 많이 달렸네요. 몇가지 첨언을 드릴까 해서 댓글 남깁니다.

'0xFF' 님의 assertion,
'달빛연구자'님의 컴파일러 제공 매크로 (__FILE__,__FUNCTION__,__LINE__) 활용 ,
그리고 '세레브' 님과 '史' 님의 예외 체크 및 처리,

피드백 주신 것 감사드립니다. 네 분의 말씀도 다 좋은 방법입니다. 진짜 제대로 된 프로그래밍을 하려면 이 분들의 피드백에 반드시 귀 기울여야 합니다.
저는 프로그래밍을 처음 접하는 완전 초보자, 과제 제출 정도의 간단한 프로그래밍 작성(그리고 어쩌다 그 코드에서 알 수 없는 버그가 발생했을 때)을 염두에 두고 이 글을 쓰게 되었어요. 이런 분들이 열심히 프로그램을 짰다고 보여 주는데 심각하게 '자판기'를 만들어 내는 케이스를 많이 보고 안타까워서 이 글을 쓰게 되었습니다.

'史' 님의 말씀처럼 원론적으로는 항상 예외처리는 하는 것이 좋습니다. 저도 프로그램에서 예외처리 하지 말거나 게을리 하라는 뜻으로 글 쓴 게 아닙니다. 물론 코드를 꼼꼼하게 짜야 합니다.

저는 그러한 원칙에 약간의 예외 상황을 가정하고 이 글을 썼어요. 예를 들면 위 문단에서도 밝혔듯, 아주 간단한 과제를 위한 코드, 또는 아이디어를 빨리 검증해보고자 하는 코드 작성의 경우들 말입니다. 초심자분들과 교육기관에서 학습 중인 분들은 이런 코드를 아주 많이 작성하게 됩니다. 물론 과제 코드에서 예외 처리 꼼꼼하게 하면 프로그램도 잘 돌아가고 좋겠죠.

그렇지만 과제는 자기가 배운 아이디어를 얼마만큼 잘 구현했느냐에 초점을 맞춰 제작한다고 전제한다면, 이 경우에는 너무 지나치게 예외에 얽매이는 것도 그다지 좋은 접근법이라고 생각하지 않습니다. 프로토타입 코딩도 마찬가지구요. 물론 이 경우에도 기본적인 에러 처리 정도는 해 줘야 하는 건 기본입니다. 그 기본도 무시하란 뜻으로 이런 조언을 쓴 건 아니에요 :)

장황하게 글이 길어졌는데, 제가 드리는 핵심은 이거에요 "입력 출력 처리과정 심플하게 짜라. 너저분한 것 좀 늘어놓지 마라. 그러다 프로그램 망친다. 너도 눈버리고 다른 이들도 눈버린다."
132 2014-03-06 23:19:25 1
C 초보가 흔히 하는 삽질성 코드에 대해 조언을 드립니다. [새창]
2014/03/06 23:01:55
냥이님. 처음부터 쉬운 게 어딨습니까. 오차도 겪고 실수도 겪죠.
131 2014-03-06 00:54:46 44
게시판에 올라오는 대학생들 과제에는 답변하지 않아야 한다고 생각합니다. [새창]
2014/03/05 22:15:48
그렇죠. 꼭 초보자의 질문이라고 해서 답해주지 않겠다는 게 아니라, 날로 먹으려는 고약한 마음가짐도 꼴보기 싫고 거기에 맞춰 호구짓도 하지 말자는 거죠. 게다가 왠만한 질문 정도는 검색하면 다 나오는 거고.

제 개인적인 생각을 말씀드리면 학생들이 여기, 아니 꼭 여기 뿐만 아니라 인터넷에 "그 정도의" 질문 올리는 거부터 잘못되었다고 생각합니다.
좀 더 편견을 붙여 말씀드리면 그런 건 진짜 글러먹은 것들이에요. 왜냐구요? 학생들은 책이 있고, 속한 학과가 있고, 선배가 있고 조교와 교수가 있거든요.
물론 질문 자체를 폄하하고자 하는 뜻은 아니에요. 그러나 그런 좋은 자원을 가까이 두고 굳이 질문 올리는 거 좀 생각해 봐야 합니다. 진짜 다시 말씀드리지만 질문 자체를 뭐라 하는 거 아니에요. 질문을 하는 요령이 부족하다는 거에 한 소리 하고 싶은 거지...
130 2014-03-05 02:08:31 0
일반적으로 토큰이라고 하면 어떤 원리인가요? [새창]
2014/03/05 01:28:01
일반적인 토큰이 아니라 OAuth2 에서 말하는 bearer token 말하는 거군요? bearer token에는 어떤 다른 정보를 포함하고 있지 않습니다.
129 2014-03-04 13:20:40 2
비주얼스튜디오 C++에서... [새창]
2014/03/04 12:06:08
헐 다들 뭐래는 거야... 소켓 프로그래밍은 리눅스와 윈도우가 다르기 때문에 같이 쓸 수 없어요. 리눅스는 리눅스에서 쓰거나 정 윈도우에서 쓰고 싶으면 MSYS나 CygWin을 써야죠. 윈도우에서는 WinSock을 써야 하고....
128 2014-03-01 13:59:40 2
HTML 배우는 중... 진짜 모르겠어요. [새창]
2014/03/01 13:36:20
저 웹브라우저가 보여주는 HTML 코드는 작성자님이 만든 코드와는 약간 다릅니다. 작성자님이 만든 코드를 한 번 분석(parsing, 파싱)한 후, 브라우저가 이해한 DOM tree를 바탕으로 재구성하는 것이거든요.
127 2014-03-01 11:43:14 0
"유니티4 게임 개발의 정석" DVD 파일 예제 소스 가지고 계신 분 ㅠ [새창]
2014/02/28 22:41:20
http://www.acornpub.co.kr/acorn_guest/Example.zip 이거 아닌가요?
126 2014-03-01 00:49:12 1
boost를 사용하는데..object_pool이 왜이렇게 느리지... [새창]
2014/02/28 19:37:29
글쓴이 분과 같이 실행되는 테스트 패턴에서는 boost::object_pool 보다 boost::pool 을 비교 대상으로 삼아야 합니다.
코드를 boost::pool 로 변경하고 테스트 (반드시 최적화 옵션을 주시고) 하면 퍼포먼스 차이가 많이 납니다.
제가 리눅스에서 실행 해 본 결과입니다.

==== Default Alloc =====
Default Alloc(Block32) Elapsed = 33 Millisecond
Default Alloc(Block64) Elapsed = 29 Millisecond
Default Alloc(Block128) Elapsed = 47 Millisecond
Default Alloc(Block256) Elapsed = 70 Millisecond
Default Alloc(Block512) Elapsed = 112 Millisecond
Default Alloc(Block1024) Elapsed = 210 Millisecond
Default Alloc(Block2048) Elapsed = 409 Millisecond
==== Pool Alloc =====
Pool Alloc Elapsed = 5 Millisecond
Pool Alloc Elapsed = 7 Millisecond
Pool Alloc Elapsed = 9 Millisecond
Pool Alloc Elapsed = 9 Millisecond
Pool Alloc Elapsed = 13 Millisecond
Pool Alloc Elapsed = 21 Millisecond
Pool Alloc Elapsed = 28 Millisecond
< 이전페이지 다음페이지 >
< 26 27 28 29 30 >
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호