CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·주식한당 ·아이포니앙 ·방탄소년당 ·일본산당 ·MaClien ·안드로메당 ·개발한당 ·자전거당 ·클다방 ·소셜게임한당 ·키보드당 ·소시당 ·나스당 ·가상화폐당 ·야구당 ·퐁당퐁당 ·창업한당 ·바다건너당 ·육아당 ·디아블로당 ·달린당 ·이륜차당 ·땀흘린당 ·골프당 ·AI당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·날아간당 ·사과시계당 ·배드민턴당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·콘솔한당 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·갖고다닌당 ·이브한당 ·패셔니앙 ·물고기당 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·걸그룹당 ·안경쓴당 ·차턴당 ·총쏜당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·IoT당 ·KARA당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·리눅서당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·PC튜닝한당 ·찰칵찍당 ·그림그린당 ·소풍간당 ·심는당 ·패스오브엑자일당 ·라즈베리파이당 ·품앱이당 ·리듬탄당 ·노젓는당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·여행을떠난당 ·터치패드당 ·트윗당 ·VR당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

모두의공원

개발하면서 들어본 3대 헛소리 적어봅니다. 104

20
파란송이
21,454
2022-04-06 23:31:22 수정일 : 2022-04-06 23:33:06 122.♡.137.216

SI회사에서 일하면서 들어본, 기억에 남는 3대 헛소리 적어봅니다.


1. IF문을 최대한 적게 써라. IF문이 많아서 속도가 느리다.


   - 코드 짜는데 IF문을 생각해서 적게 쓰라니 이게 말인가요 방구인가요.

     성능은 알고리즘의 시간 복잡도에 비례하는거 아니었나요.

     integer 수치 비교하는 IF문 3개 라인 쓰고 들은 말입니다.

     그리고 해당 코드는 switch 문으로 바뀌었습니다.

     물론 테스트 해보니 성능은 그대로였죠. 아시잖아요 SI는 이런곳이에요. ^.-   



2. Java 와 C  중에 실행속도가 더 빠른것은?  - Java 라네요???


   - 상황따라 다르겠지만 일반적으로 C가 메모리 직접 접근이 가능하기 때문에 더 빠르고,

     Java는 jvm 상에서 실행되니 일반적으로 더 느리다고 대답했더니 폭소를...

     대답도 안해주시고 그저 비웃기만 하고 답을 안주시더군요.

     경력 13년 차인 지금도, 저는 왜 그렇게 웃었는지 이해가 안됩니다.

 


3. 파일명은 생성 순서대로 숫자4자리로 넘버링해서 관리하되, 주석은 적지 않는다.


   - C로 작성된 각 소스 파일은 숫자 4자리.c 와 숫자 4자리.h 로 관리됩니다.

     숫자의 의미와 체계는 선배들에게 구전으로 내려옵니다. 비전이라네요?

     선배들이 뭔가 프린트해서 대물림하는 설계도가 있는데, 보기만 해도 복잡합니다.

     소스코드는 무려 웹하드!! 에 있습니다. 

     

     서버에서 돌아가는 아주 멋진 증권 거래용 멀티스레드 프로그램이었는데,

     이전에 어떤 멋진 전설의 개발자 분이 무려 3! 중! 포! 인! 터! 를 활용하여 코딩을 해놓으셨습니다!

     Semaphore나 Context 구분이나 그 어떤 것도 없고! 그냥 3중포인터만 있는 전설의 프로그램이랍니다.

     무언가 코드를 한줄이라도 건드리는 순간, 동작은 말 그대로 혼파망이 됩니다.

     

     저는 그냥 Print문 하나 찍었을 뿐인데, 말도 안되는 거래가 무작위로 일어납니다?

     역시 저는 천재가 아니라서, 코드를 짜면 안되나 봅니다.



지금은 멀쩡한? 곳에서 즐겁게 개발하고 있습니다만,

저랬던 시절도 있었습니다. 

잠이 안와서 뻘글 적었는데, 읽어주셔서 감사합니다.


좋은 하루 마무리 되시길!


파란송이 님의 게시글 댓글
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [104] 을 클릭하면 간단한 회원메모를 할 수 있습니다.
백에이커의숲
IP 14.♡.214.151
04-06 2022-04-06 23:33:02
·
대단한곳을 다니셨군요.....;;
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:36:57
·
@백에이커의숲님 개발자 초년생으로 막 들어가서 뭣 모를때라, 대답도 못하고 네네 하고 다니던 시절이었죠. 이제와 생각해보면 가스라이팅이었던것 같습니다.
헤도니스
IP 175.♡.102.42
04-06 2022-04-06 23:34:50
·
C 가 더 빠르다는거 python 입문 1년차인 저도 알고 있는데;;;;; 엄청나군요!!...

저는 for 문을 좀 줄이라는 말은 많이 들어봤습니다.
이건 맞는 말인것 같습니다. ㅋㅋㅋ
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:38:02
·
@헤도니스님 for문 적게는 맞습니다! ㅋㅋ 저도 알고는 있는데 너무 당당하게 웃어 재끼니 혼란이 오더군요.
kubectl
IP 182.♡.4.205
04-06 2022-04-06 23:46:50 / 수정일: 2022-04-06 23:47:00
·
@헤도니스님 for문을 중첩해서 쓰면 시간 복잡도가 지수승으로 증가하거든요. ㅎㅎ
헤도니스
IP 175.♡.102.42
04-06 2022-04-06 23:48:20
·
@kubectl님 네 안그래도 시간 많이 걸리는 머신러닝쪽 연구중인데 코드 몇줄 개선하는걸로도 걸리는 시간 차이가 많은거 보고 놀래고 있습니다. ㅋ
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:19:51
·
@헤도니스님 엇 저도 머신러닝 분야인데, 반갑습니다! 느리면 GPU를 갈구면 되서 상대적으로 햄볶습니다. ㅎㅎ
헤도니스
IP 175.♡.102.42
04-07 2022-04-07 00:22:44
·
@파란송이님 15시간 걸리던 python 코드가 일부구간을 numba jit 으로 컴파일 했는데 시간이 절반으로 줄더군요 ㅋ 저거 하면서 C 가 정말 빠르구나 느꼈습니다. ㅎ
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:38:42
·
@헤도니스님 와우 훌륭하십니다! Python이 C를 끼워넣기가 정말 좋죠. 예전 모 포탈에서도 python으로 무려 검색엔진을 짜고, 성능에 관련있는 핵심모듈만 C로 포팅했었습니다. 개발기간도 짧고, 생각보다 빨라서 놀랐던 기억이 있습니다.
병수
IP 117.♡.14.90
04-07 2022-04-07 07:34:04
·
@헤도니스님 2번은 정보처리기사시험에도 나오는거 아니었어요???
삭제 되었습니다.
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:38:41
·
@보복의시님 전설을 만들어서 평생 코드 하나로 먹고 사는게 목표였나봐요. 어 그럼 의외로 고수이셨을지도 ... ㅎㅎ
브로콜리
IP 116.♡.101.196
04-06 2022-04-06 23:35:32
·
금융 SI에서 전설의 레거시 코드를 만나셨군요 ㄷㄷㄷ
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:39:28
·
@브로콜리님 왠지 경험자 이실것 같은데요. ㅎㅎ 저는 그래서 여의도 근처도 안갑니다!
ANALOG
IP 223.♡.163.156
04-06 2022-04-06 23:35:42 / 수정일: 2022-04-06 23:36:25
·
1,2,3 .. 어느 것 하나 우열을 가리기 힘들 정도로 엄청난 개소리들이네요 ㅋㅋㅋㅋㅋㅋㅋㅋ
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:40:44
·
@ANALOG님 지금 생각해보면 X소리가 맞는데, 그때는 선배들이 다들 입 꾹다물고 있으니 제가 틀린건지 혼란이 오더라구요. 지금 생각해보면 그래도 그 회사가 굴러갔다는게 신기하네요.
입틀막
IP 98.♡.80.245
04-06 2022-04-06 23:44:09
·
@파란송이님 입을 연다. 이거 정리해야 해요. 하면 돌아가는 코드를 정리하는 가시적 성과 없는 일이 내 일이 됩니다.

짠밥이죠
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:18:49
·
@입틀막님 ㄷㄷㄷ 맞습니다. 지금 생각해보니 선배들이 현자였네요.
이마노 츠루기
IP 121.♡.36.183
04-06 2022-04-06 23:36:05
·
3중 포인터 ㄷㄷㄷㄷㄷ
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:41:30
·
@이마노 츠루기님 그 이후로 *(아스타리스크) 공포증이 생겼습니다!
니파
IP 218.♡.220.80
04-06 2022-04-06 23:36:47
·
임베디드라 그런지는 몰라도, 로그도 가급적 안 적던데요. 속도 느려진다고..
그런데 실제로 반복문 같은데서 로그 찍냐 안 찍냐가 속도 차이를 만들긴 해서 할 말은 없긴 합니다.
ANALOG
IP 125.♡.49.45
04-06 2022-04-06 23:43:26
·
@니파님

임베디드는 시스템에 따라 다르겠지만.. 로그 찍는게 속도에 지장을 줄 수 있는 경우가 많습니다 ㄷ ㄷ
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:43:44
·
@니파님 로그는 디스크 액세스가 생기기 때문에, 또는 최소한 Stream I/O 가 발생하기 때문에, 성능 이슈가 큰 프로그램이라면, 별도 스레드나 프로세스에서 최소한으로 남기는 게 맞습니다.
다만 저는 서버 좀 쓰더라도, 빠른 현상 파악과 원인 분석을 위해 필요한 로그는 남기도록 권장합니다.
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:44:14
·
@니파님 임베디드시군요. 그럼 맞습니다. 함부로 뭐 찍으면 안된다고 하더군요 ㅠㅠ
니파
IP 218.♡.220.80
04-06 2022-04-06 23:48:01
·
@ANALOG님 로그가 타이밍 이슈를 만들기도 하고, 없애기도 하더군요 ㄷㄷ 원론적으로야 동기화 처리가 잘 된 코드라면 문제가 없겠지만, 여튼 현실은...
백엔드 할 때는 전혀 신경도 안 쓴 것들이... (속도가 느리면 서버 사양을 올리는게 정답입니다를 외치다가.. 임베디드로 오니..)
ANALOG
IP 125.♡.49.45
04-06 2022-04-06 23:55:41
·
@니파님

네. 그래서 개발 할 땐 prtintf 그냥 막 쓰다가도 양산테스트나 코드 릴리즈 할 땐.. 다 빼고 테스트 하는게 정석이긴 합니다. 그게 들어가야 정상작동 한다면.. 차라리 딜레이를 쓰면서 필요한 타이밍을 계산해서 넣는게 나아요.
삭제 되었습니다.
마린보이v
IP 182.♡.74.36
04-07 2022-04-07 05:45:07
·
니파님// 임베디드 쪽에서 에코는 디버깅 용으로만 사용합니다.
앙겔곰
IP 222.♡.10.122
04-06 2022-04-06 23:38:20
·
여러의미로 대단하네요 ㅎㅎㅎㅎ
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:44:40
·
@앙겔곰님 지금 생각하면 추억인데, 다시 가라고 하면 싫네요 ㅎㅎ
Scamer
IP 175.♡.94.37
04-06 2022-04-06 23:38:24
·
1번은 컴파일러가 알아서 최적화해주는부분 아닌가요 ㄷㄷ
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:47:00
·
@Scamer님 불필요한 코드면 애초에 IF문을 쓸필요가 없죠. ㅎㅎ 말씀하신대로 요즘 컴파일러는 알아서 최적화를 잘 해주기도 하구요.
그리고 결국 문제는 DB connection을 무한 생성하고 안 닫으신 그 선배분의 코드로 판명되었습니다. 분석 - 수정 - 패치는 제가 했습니다. ㅎㅎ
aiko
IP 211.♡.49.160
04-06 2022-04-06 23:38:27 / 수정일: 2022-04-06 23:45:53
·
시간복잡도의 Big O 랑 별개로 실제 성능은 주어진 n값에 따라서 다릅니다. n^3이라도 n이 작으면 nlogn+C 랑 비교 해도 안꿀리죠 .
if / switch 는 꽤 오래된 떡밥인데, 조건 갯수가 많아질수록 switch가 통상 유리한데, 요즘은 컴파일러서 거르긴 합니다만
저게 10년전 이야기면 저 이야기가 틀린건 아니죠. 물론 꼴랑 3개가지고 if / swtich 따졋으면 한대 때려야.
그리고 임베디드 쪽이면 여전히 저거 따져야합니다. 프로세서 성능이 제약적이니까요.
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:50:02
·
@aiko님 넵 말씀하신 내용이 맞습니다!
다만 환경은 윈도우였고, 실제 성능 하락 원인은 DB connection을 마구 생성한 다른 코드였습니다. 아마 말씀하신 내용을 선배가 자랑하고 싶으셨던 것 같아요.
삭제 되었습니다.
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:50:30
·
@크리안님 아하! 또 같은 소리를 듣게되면 써먹겠습니다. ㅎㅎ
견우
IP 116.♡.131.49
04-06 2022-04-06 23:39:42
·
컴퓨터 구조 관점에서 보면, CPU가 앞으로 실행될 명령어를 예측해서 미리 캐시에 당겨오는데 IF구문이 있으면 예상하는게 어려워 성능적으로 불리할수는 있습니다. 하지만 일반적인 프로그램에서 이렇게까지 신경써서 코드짜는경우는 없긴하죠^^
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:51:54
·
@견우님 제가 분야가 분야다보니, 컴파일러 최적화가 어떤식으로 되는지는 지식이 없네요. 좋은 의견 감사합니다. 저도 코드 짤때 컴퓨터의 성능을 믿고 대마?만 신경씁니다. ㅎㅎ
견우
IP 222.♡.61.190
04-07 2022-04-07 14:24:39
·
@파란송이님 저도 예전에 컴퓨터 구조 공부할때 들은거라 잘몰라요~ cpu의 병렬 처리할때 pipeline이 필요하고, pipeline이라는것 자체가 앞으로 실행할 명령어를 미리 가져와야하기에 분기 예측(branch prediction)이라는 것을 합니다. 예측이 맞으면 cpu를 효과적으로 쓸테지만, 틀리면 그 만큼 clock 손해를 보는 개념입니다. 하지만, 코딩을 할때 이런거까지 다 고려해서 짜는 것 보단 비즈니스 로직을 쉽고, 더 간결하고 다른데서 가져다 쓰기 좋도록 라이브러리화 하고 이런게 더 중요한 시대가 된것 같습니다.
삭제 되었습니다.
kwatch
IP 168.♡.35.76
04-06 2022-04-06 23:43:24
·
@ 버니맨님
1번은 맞는말 아닌가요 ..
그냥 단순히 3개 썼는데도 그런소리 한게 미친거 같지만..
많은 조건에선 switch 가 훨씬 빠르다고 어디서 본거 같아요
삭제 되었습니다.
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:56:08
·
@ 버니맨님
1. 네 저도 비슷한 이야기를 들어본 적이 있습니다. 다만 대부분의 코드가 그렇듯이, 성능저하는 IF문 보다는 For문의 과다한 사용이나, 불필요한 DB Access, 디스크 I/O, 무한 loop에서 발생하는 상황이었습니다.
3. 아직두요? 저때는 SVN 시절이긴 합니다만... 그때도 웹하드와 메일에서 소스코드를 관리하시더군요. 그분은 fox를 사랑하셔서 모든 코드를 fox로 짜신 전설이었습니다.
lazyzeus
IP 221.♡.108.110
04-07 2022-04-07 00:11:51 / 수정일: 2022-04-07 00:15:42
·
@kwatch님 정확하게는 switch경우는 조건에 해당하는 값이 작을 경우 jump 위치 테이블(배열)을 만들어서 조건을 비교하는 것이 아니라 조건을 배열의 index로 사용해서 바로 점프위치를 얻은 다음 바로 점프 할 수 있습니다. 그런데 이게 최적화의 문제라 컴파일러에서 if문도 switch문처럼 바꿔서 처리해주기도 힙니다
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:16:35
·
@lazyzeus님 와우, 뻘글에 고급 지식으로 답을 주시다니 감사합니다. 덕분에 하나 배워갑니다. 정말 감사해요!
리트리셈
IP 210.♡.16.108
04-07 2022-04-07 00:39:49
·
@lazyzeus님 말씀하신 내용은 switch문을 컴파일러가 자동으로 펑션포인트처리로 최적화시켜준다는 의미 같군요.
if나 switch 많이 써야하면 펑션포인터로 처리하는게 베스트긴하죠. 손이 많이 가서 그렇죠
쿠키맨
IP 182.♡.221.237
04-06 2022-04-06 23:43:06 / 수정일: 2022-04-06 23:44:58
·
저는 본문을 읽다가

원투 스트레이트 맞고 어질 어질
(1번글과 2번글)


3번글에서 떡 실신했습니다 ㄸㄷ


이 댓글은 실신한 이후 정신차리고 쓴 글입니다
파란송이
IP 122.♡.137.216
04-06 2022-04-06 23:57:00
·
@쿠키맨님 실신할 정도로 재밌으셨다니 감사합니다! 근데 이건 진짜 100% 리얼 상황이었습니다.
hash
IP 211.♡.84.177
04-06 2022-04-06 23:43:38 / 수정일: 2022-04-06 23:46:36
·
다른 건 저도 바보같이 들리긴 한데, if문 얘기는 분기 예측이 잘 안 되는 오래된 CPU나 임베디드 환경에서는 가능성 있는 얘기긴 해요. switch문이 기계어로 번역될 때 브랜치 테이블 형태로 최적화가 가능하거든요.
https://en.wikipedia.org/wiki/Branch_table

이걸 응용한 사례로 Duff's Device가 있습니다 ( https://en.wikipedia.org/wiki/Duff%27s_device )
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:00:23
·
@hash님 이야... 훌륭하십니다. 하나 배워갑니다! 아주 근거없는 말은 아니었군요. 하지만 IF문을 포기하지는 못하겠어요. ㅠㅠ python으로 넘어와서 다행입니다.
NPlayer
IP 121.♡.182.82
04-06 2022-04-06 23:43:50
·
1. 게임 애플리케이션이라면 맞는 부분도 있습니다. 특히 초당 60번 이상 실행되게 되는 게임루프안에서라면요.. 미미하지만 쌓이다보면 미묘하게 차이를 만들게 되고 사실 게임루프에 수많은 if문이 들어가는건 권장할만한 구조는 아니라고 생각되네요.

2. 무슨 소리인건지..

3. 정하기 나름일듯 은한데 합리적이지 않으면 바꿀수 도 있는것이지요 무조건 따르라니.
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:04:48
·
@NPlayer님
1. 임베딩 분야이거나, 게임 코딩이라면 있을수 있는 이야기였군요. 알려주셔서 감사합니다. 저도 보통 if - else 두단계가 아니면 switch 문을 쓰긴 합니다만, 모르고 사용하고 있었네요.

2. 지금의 저도 그분이 무슨말을 하고 싶었던건지 모르겠습니다. 답을 주셨으면 좋았을텐데 말이죠 ㅠ

3. 음.. 지금의 프로그래밍 트렌드를 생각하면 아무리 잘 정해도 안 좋은 구조라고 생각합니다.
좋은 코드는 이해하고 유지보수하기 쉬운 코드이고, 넘버링과 주석없이 천재들만 이해할 수 있는 코드는 조금 심하게 말하면 쓰레기라고 생각합니다. 결국 버려질테니까요. (실제로도 지금은 완전히 버려졌다고 들었습니다.)
불토끼
IP 122.♡.68.230
04-06 2022-04-06 23:45:48
·
1. 갯수가 적으면 switch 가 유리합니다
2. 그때 그때 다르죠 ㅎㅎ
3. 3중 포인터는 쓰지 말라고 배운는데 말이죠 ㅎㅎ
요
니파
IP 218.♡.220.80
04-06 2022-04-06 23:49:31
·
@햇살아이님 1번 반대로 적으신거 아닌가요? if문 여러개 쓰면 switch 로 바꿔라고 ide에서 권장하던데요 (안드로이드 스튜디오..)
헤도니스
IP 175.♡.102.42
04-06 2022-04-06 23:53:10
·
@햇살아이님
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:08:46
·
@햇살아이님
1. 엇 정말요? ㅠㅠ 안되는데... if 문은 사랑입니다.
2. 진리의 케바케입니디만, 저 질문을 저에게 먼저 던지셨고, 제답엔 그냥 웃으셨고, 퇴사할때까지 몇번 더 물어봤는데 답은 안주시더군요.
저때는 정말 Pure C와 Pure Java 시절 질문하신 거라서, 제 답이 큰 틀에서 틀리지 않다고 생각합니다.
3. 음.. 3중 포인터는 전설이고, 정말 대단한 기술이라 꼭 써야 한다고 들었습니다.
물론 제 팀원이 3중 포인터를 쓰겠다고 한다면 불러다가 설득해보고, 그래도 안되면 이직을 고민해보겠습니다.
cannabis
IP 59.♡.121.173
04-06 2022-04-06 23:47:34
·
3번은 일상입니다. 이 바닥에선 ㅋㅋㅋ
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:10:03
·
@cannabis님 아 웬지 동종 업계의 스멜이... ㅎㅎㅎ 지금은 다른 분야입니다만, 저때 선배들이 넘버링된 파일을 새벽1시에 하나 하나 열어보면서, 머리통을 싸매고 괴로워하던 모습이 잊혀지지가 않습니다.
진짜메뚜기
IP 175.♡.73.123
04-06 2022-04-06 23:49:28
·
소름이군요...
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:10:45
·
@진짜메뚜기님 너무 황당한 소리를 들으면 정말 사고가 정지하더라구요. 이게 리얼입니다...
RaphKay
IP 222.♡.123.14
04-07 2022-04-07 00:01:25
·
댕소리 종합선물세트 였군요.. 세상에...
그나저나 임베디드도 임베디드 나름이라 저는 usb 5gbps daemon 에 pthread 로 비동기 logging 하도록 쓰는데 cortex a72 이상이면 사실 성능 하락 없다 봅니다. ㅎㅎ
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:11:57
·
@RaphKay님 임베디드도 성능의 시대로 넘어오는건가요? ㅎㅎ
사실 저는 GPU를 쓰는 코딩으로 넘어와서, 행복하게 컴퓨터 성능을 믿습니다. 말도 안되게 느리면 그때가서 프로파일러 돌립니다. ㅎㅎㅎ
RaphKay
IP 222.♡.123.14
04-07 2022-04-07 08:36:04
·
@파란송이님 궁금한게 .. 제가 한 asm,c,c++,pas 등 한 20 년 넘게 쓰면서 3중 포인터는 쓰는걸 보지도 써 보지도 않았는데 이게 너무 궁금 합니다 ㅎㅎ
탱ol
IP 175.♡.21.44
04-07 2022-04-07 00:06:34
·
1번은 if냐 switch 냐보다 분기를 덜타는 방법을 찾다보면 좋은 성능의 코드가 나오기도 해서 나온 말은 아닐지 그냥 끄적여봐요... 나머진 어질....
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:13:10
·
@탱ol님 저도 그렇게 믿고 싶숩니다! 근데 상황이 그런 상황이 아니였어용 ㅠㅠ 윈도우 프로그램이었는데 어느날 갑자기 말도 안되게 느려져서 마침 갓 입사한 제가 타겟이 되었던 상황이었습니다. 원인은 다행히도??? 다른거였죠.
미스터골드
IP 115.♡.250.82
04-07 2022-04-07 00:08:53
·
if 대신 ? : 잔뜩 써주고 싶네요ㅋ
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:14:03
·
@미스터골드님 상황에 따라 ? : 는 매우 좋은 코드죠! 저도 코드를 한줄로 줄이고 싶을때 종종 씁니다.
도미노_
IP 218.♡.103.119
04-07 2022-04-07 00:11:38
·
3중 포인터는 진짜........
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:14:23
·
@도미노_님 그러게 말입니다. ㅠㅠ
삭제 되었습니다.
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:25:53
·
@말없는님 MFC 대비 해서 개선된 윈도우용 컴파일러라는 이야기를 하는거라고 감히? 추측해봅니다. 지금은 사실 Linux 환경이나 윈도우 같이 플랫폼도 한정되어 있지 않고, Node.js 나 go 같이 새로운 개념의 효율적인 언어들도 많이 나와서, 저도 쉽사리 어떤 언어가 제일 빠르다! 라고 이야기하기 어렵다고 생각해요.
다만 저때 Java는 Linux에서 돌리는 환경이었고, C 대비 정말 느렸어요.
삭제 되었습니다.
bluenick
IP 210.♡.32.196
04-07 2022-04-07 00:16:52 / 수정일: 2022-04-07 00:19:55
·
1. IF 문
아마도 if.. else if.. else if.. 이 구조를 말하는 걸로 알고 있습니다.
처음 코딩시에는 많지 않지만, 조건이 계속 추가되면 else if 가 모니터 하나를 꽉 채우고도 주욱 가더라고요
그럼 맨 앞의 if를 물고 계속 이어지는 구조라 메모리도 그만큼 더 쓰면서 해당 모듈이 중첩되서 돌아가면 느려지는 건 맞을거에요
1 depth 에서 condition 비교하도록 if를 짜게 되면 모든 if문을 지나가야해서 비효율적이고,
switch가 조건 찾아서 다이렉트로 가서 처리하니까 switch가 가장 빠르죠..
특히 서버 등 성능 좋은 거 말고 폰 같은 성능 낮은(이마저도 요샌 높아졌습니다만, 예전에는 꽤 낮았습니다...)거에선 티가 날수 있습니다.
단 몇개 안되면 그넘이나 저넘이나 다 똑같죠 ㅎㅎㅎㅎ

2. 대답 없이 비웃는 분들 주요 특징이 잘 모른다입니다.
어서 듣긴 들었고 본인도 그렇다고 알고 기억해놓은건데
후임자에게 알려줬다 왜 그러냐고 이유를 물으면 디테일하게는 모르거든요..까먹었거나..
그럼 실실 쪼개는 거나 화내거나를 시전하시죠.. 안 그럼 꼬치꼬치 물어볼테니까요 ㅋㅋ

3. 갓 입사해서 할 때 변수랑 이런 저런 것들을 암호처럼 해서 코딩했는데
윗분(그 당시 저한테는 꽤 높으신...)이 어떻게 제 코드를 보게 되서
머라머라 한 소리를 10분 정도 하셨죠...
네 누가봐도 모르게 의도적으로 코딩한 거 맞습니다...ㅋㅋ
혼나고 나서는 제대로 코딩은 했습니다만..
그때는 왜 그랬나 몰라요..^^;
제가 아는 다른분은 제대로 코딩한다고 로그상 프린트 우선 정리했는데 구동이 안되서 다 엎고 기존대로 가신분도 있었는데...개인이 다 엎을거 아니면 기존 주먹구구로 돌아가도록 한 구조는 수정이 쉽지는 않더라고요
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:30:50
·
@bluenick님 1. 네. 많은 분들이 index에서 다이렉트로 찾아갈 수 있기 때문에 switch 문이 좋다고 이야기 할수 있다고 친절하게 알려주셨습니다. 좋은 지식 감사합니다.

2. 그러게요. 뭐라도 불완전한 답이라도 주셨으면 차라리 좋았을거에요. 그래서인지 저는 후배가 뭔가 물어보면 아는 선에서 최대한 대답을 주되, 좀 더 찾아보라고 이야기 합니다.

3. 이때는 뭔가 남들이 손대기 어려운 코드를 짜면 멋있게 보이는 풍조?가 있었던 것 같습니다. 개발 방법론 같은 것도 없고, 뭔가 선배의 코드를 신성시 하는 그런거죠. 지금은 어떤 코드를 짜도 3년 이상 가기 어렵다 라는 마인드로 짜고 있습니다. 항상 새로운 코드와 기술이 나오더라구요. ㅠㅠ
잘보고따라해
IP 125.♡.99.26
04-07 2022-04-07 00:18:04
·
스토리지를 san을 안사고 nas를 사서 인덱스를 안탄다는 dba도 봤습니다. ㅋㅋㅋ
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:32:09
·
@잘보고따라해님 아 소름 돋네요! 정말 일하기 힘들군요 ㅠㅠ
조나
IP 223.♡.217.228
04-07 2022-04-07 00:22:09 / 수정일: 2022-04-07 00:25:38
·
if문, switch 떡칠이 거의 대부분의 경우 빠릅니다. 읽기가 힘들어서 다양한 패턴을 도입하는거겠죠.

저는 파일 하나가 if문과 함수만으로 떡칠된 파일을 발견하고 제 스타일대로 구조잡고 쪼갰더니 파일 1개가 400개로 쪼개지는 경험을 해본적이 있네요.
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:33:18
·
@조나님 맞습니다! 가독성이 떨어지죠.
몇 라인이셨길래 400개로 ㄷㄷㄷ 그 정도면 거대 프로젝트네요.
슈가레빗
IP 58.♡.73.207
04-07 2022-04-07 00:23:51
·
이미 프로그램이 로딩되어 메모리에 떠있는 상태라면, 멀티쓰레드를 사용하는 프로그램에서는 자바가 C보다 빠르게 동작할 수 있습니다.
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:34:26
·
@슈가레빗님 Thread! 그럴수 있겠네요. 좋은 지식 감사합니다.
삭제 되었습니다.
BIP39
IP 59.♡.176.126
04-07 2022-04-07 00:32:03
·
주석 영어로 쓴다고 베낀코드라고 하는 미친넘도 있습죠
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:36:09
·
@BIP39님 ㅋㅋㅋㅋㅋ 아 이건 현으로 터졌습니다. 베낀 코드는 검증된 좋은 코드입니다! 영어를 잘 하시나보네요. 부럽습니다. 저는 git commit message 영어로 잘 적는것도 어렵더라구요 ㅠㅠ
새웃깡
IP 112.♡.106.207
04-07 2022-04-07 00:39:34
·
오 이렇게 얘기하면 열받게할수있군요? ㅋㅋㅋㅋ
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:43:30
·
@새웃깡님 아...? 그러네요? ㅋㅋㅋ
혁군
IP 218.♡.170.207
04-07 2022-04-07 00:40:20 / 수정일: 2022-04-07 00:46:51
·
3번은 진짜 정신이 멍해지네요. 인간같이 생겼고 인간같이 말하지만 인간이 아닌 무언가가 작성한건가요. 뭐하러 저런 고생을 사서하나요. ㄷㄷㄷ
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:45:48
·
@혁군님 가끔 제가 그 코드들을 가지고 있었다면, git에 올려놓고 해외 개발자들의 반응을 구경하는 상상을 하곤 합니다. ㅎㅎㅎ
처음처럼다시
IP 223.♡.217.227
04-07 2022-04-07 00:44:54
·
여러분... 아시고 하시는 말씀이겠지만
- switch 로 최적화 될 수 있는 경우는 한정적입니다. 매우 연속적인 값으로 case 문이 구성되거나 그래야 합니다. 아니면 switch 도 그저 if 문의 반복과 똑같습니다.
- 어떤 작업이든 제대로 구현했을 때 c가 Java 보다 느릴 가능성은 거의 없습니다. 포인터를 안써도 이는 변함이 없습니다. 다만 대충 구현하면 java가 그나마 실수 가능성이 조금이라도 낮아서 java가 빠를 수도 있겠죠. 아마 웃으신 그분은 이걸 의미하지는 않으셨겠지요
- c 계열 언어에서 if, else if 문의 반복에 한계가 있습니다. 컴파일러에 따라 다를 수 있습니다만, 살다 보니 이 한계를 볼 기회가 있었고 매우 놀랐...었습니다. 이런 경우 switch가 강제될 수도 있겠습니다만... 비교하는 값이 숫자가 아니고 문자열이라면 어떻게 해야 할까요? ㅋㅋ

오늘 이상하게 일이 안돼서 줄줄이 적어 봤습니다.
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:54:01
·
@처음처럼다시님 뻘글에 호응이 너무 커서 놀라는 중입니다! 읽어주셔서 감사해요~
- https://en.wikipedia.org/wiki/Branch_table 를 어느분이 알려주셨습니다! 제가 짠 코드에 적용되는 사항은 아니라고 생각됩니다만, 역시 코딩의 세계는 깊고 넓네요.
- 저도 그렇게 생각합니다. 동작이 명확하게 정의되어 있고, garbage collector를 사용하지 않고 직접 제어한다면, 일반적으로 C가 항상 빠른게 맞다고 생각합니다.
- 사실 if vs switch 보다도 문제에 맞는 알고리즘을 적절하게 썼느냐 - 문자열 탐색이라면 kmp 또는 moore 알고리즘- 를 고민하는게 더 좋다고 생각합니다. 예전에야 쥐어 짜내는 게 중요했지만, 지금은 하드웨어를 어떻게 잘 활용하느냐의 시대가 되지 않았나 하는 생각이 드네요.

저도 밤에 잠이 안와서 이러고 있네요. 자러 가야겠습니다!
좋은 밤 되세요~!
이프로부족
IP 210.♡.248.30
04-07 2022-04-07 00:51:45
·
성능 비교는 측정해 보기 전까지는 장담하면 안됩니다.
파란송이
IP 122.♡.137.216
04-07 2022-04-07 00:56:06
·
@이프로부족님 지당한 말씀입니다! 그래서 프로파일러나 재현, 또는 비교 테스트를 자주 돌려보고 있습니다.
후로파파
IP 1.♡.198.173
04-07 2022-04-07 00:59:45
·
if 문을 많이 쓰면 다른 사람이 코드 읽는 속도가 느려지긴 하겠네요;;
Java 는 바이트코드로 바꾸면서 최적화 과정이 추가가 되긴하지만... 같은 프로그램인데 C 보다 빠르게 만들어질 일이 있을지....
마지막 3번째는 진짜 계약연장의 의지를 담은 코드인가요.... ㄷㄷㄷ
꿀과자
IP 121.♡.112.67
04-07 2022-04-07 01:20:55 / 수정일: 2022-04-07 01:21:25
·
if든 switch든 어차피 컴파일러가 알아서 다 하는데요. ㅎㅎ 컴파일러 연구하는 분들이 놀고 있는게 아닙니다. 그냥 유지보수하기 쉽게 짜는게 최고죠.
유유우유
IP 175.♡.3.59
04-07 2022-04-07 01:21:18
·
와 대단하네요 o-o
두번째 폭소를 한건 할말없고 창피해서 그렇게 라도 안하면 들킬까봐 인거고...
마지막은 소스를 4자리숫자에 프린터물로 전수해주다니...어렵게 만들어서 나만아는 코드를 나만 설명해줄수 있게하겠다.. 내개똥같은 문서를 성전처럼 받들어라..뭐 이런 컨셉이군요.. 팀장이 코드검수 안하나요?
뭐라고해
IP 163.♡.132.116
04-07 2022-04-07 02:05:48 / 수정일: 2022-04-07 02:12:44
·
1번은 맞는 말이예요. 컴파일러로도 해결할 수 없어요.
브랜치 명령어에 의하여 control hazard 케이스는 컴퓨터 아키텍쳐의 근본적 구조적 문제입니다.
branch prediction 혹은 predication 같은 기법으로 브랜치 명령어에 대한 penalty 를 줄일 수 있지만 100% 해결 할 수 없거든요.
다만 프로세서의 파이프 라인 구조를 고민 하고 몇 clock 사이클 손해 보는 것을 고려하면서 프로그램을 짠다는 것은 말이 안되는 소리죠. Assembly coding 하는 것도 아니구요.
삭제 되었습니다.
삭제 되었습니다.
너부리얌냠
IP 1.♡.242.8
04-07 2022-04-07 02:56:22
·
개발을 잘하면 오류가 없다.

이말 했던분 개발 못하는 pm 이셨습니다..
Diki
IP 146.♡.130.213
04-07 2022-04-07 04:05:20
·
1과 2는 정말 알고 경험해서 말하는 거면 코딩의 신이고 그 이외에는 노답이죠. ;;;

if도 현대 cpu는 미리 계산해놓고 분기에 따라 계산 결과를 버리기에
(그리고 미리 캐쉬도 채워넣고 버리고 하기에)
그걸 고려해야 할 정도로 쥐어짜는 프로젝트들이 좀 있기는 해요.
CPU 및 주변 기기들의 구조에 대하여 빠삭하고 어셈 레벨로 코딩이 가능한 사람들이 필요한 프로젝트들 말이죠. ;;;

문제는, 그걸 알고 경험해서 말하는 사람들은 때와 장소, 그리고 프로젝트를 가려서 말한다는 거죠.
삭제 되었습니다.
흔한개발자
IP 119.♡.52.17
04-07 2022-04-07 05:27:51
·
개발글이라 새벽에 댓글 많이 달리는것 같은데요..ㅋㅋㅋ
푸에르토
IP 163.♡.132.119
04-07 2022-04-07 05:46:03
·
if 든 for든 switch 든... 코딩인데, 필요하면 무조건 써야죠. 불필요한데 쓰는게 문제겠지요..
가장 기본적인 if, for, switch 가지고 트집 잡는 사람들은 뭐하는 사람들이죠?
사과열애설
IP 77.♡.47.91
04-07 2022-04-07 05:49:26
·
와.. 상상 초월하는 곳이 많네요. 개발자 이직할 때 개발 문화도 연봉만큼이나 중요하다는 생각이 듭니다.
Jasonh
IP 14.♡.223.227
04-07 2022-04-07 05:49:56
·
물 마시다가 뿜었습니다.
ㅍㅎ
지그프리드
IP 223.♡.21.24
04-07 2022-04-07 05:56:59 / 수정일: 2022-04-07 05:59:18
·
1. 컴파일러 수업을 안들었군요. 컴퓨터 구조 수업도 제대로 안들은 것 같고요. 대학교 2, 3학년 따 하는 건데요.

요즘은 컴파일러 최적화가 잘되어 있어서, if로 짜든 switch로 짜든 어셈블리는 동일하게 나옵니다.

2. 컴퓨터공학개론도 안들었거나 두 언어를 모두 다뤄본 경험이 없거나 겠네요. 대학교 1, 2학년 때 다 하는 것인데요.

C로 코딩하다 JAVA 시작하는 순간 너무너무 느려서 깜짝 놀랐던 기억이 있네요. 이건 싸울게 아니라 같은 로직을 두 개로 짜서 돌려보면 바로 검증이 가능하죠

3. 삼중포인터는 잘 쓰면 엄청 효율적인 코딩이 가능합니다 (문자열을 다루는 경우는 그냥 이중 배열 쓰는 것과 크게 다르지 않기 때문에요) 근데 주석없이 짜는건 협업에서는 자살행위죠. 자기도 기억 못할텐데요.
유령회원님
IP 211.♡.168.182
04-07 2022-04-07 06:48:18 / 수정일: 2022-04-07 06:50:50
·
1. 컴파일러 최적화 없는 환경이면 그럴 수도 있지만, Real-time 쪽 코드 말고는 최적화 없이 잘 안쓰죠. Embedded 에 들어갈 Real-time 쪽 코드에서는 종종 디버깅 할때 트레이스 꼬이는 문제로 최적화옵션을 배제하고 쓰기도 합니다. 많은 분들이 말씀하시지만 최적화 하면 그냥 다 비슷해져요. 분기야 뭐 알아서 다 조정해주니까. 물론 너무 많이 쓰면 당연히 느려지는거라... 케바케라고 봐야할까요.

2. 2번을 이야기하는 사람들이 가끔 있긴 합니다. 저도 웹 개발쪽으로 넘어가면서 어떻게 C 로 짠 코드가 자바로 짠 코드보다 빠를 수 있냐는 말을 하는 사람들이 종종 보긴 하거든요. 제가 Spark 로 한창 고생하고 있었을때, 같이 개발하던 분도 그런 이야기를 했는데, 병렬화나 분산처리쪽으로 넘어가면서 자바가 훨씬 빠르다는 식으로... 그 분은 Embedded 개발이나 어셈블리 또는 진짜 극단적인 최적화 개발은 해본적이 없는 분이라 그럴 수도 있다는 생각은 했습니다. 같은 연산을 그냥 C++ 로 만들어서 보여드리고 나서부터는 납득하시고, 포인터때문에 C++ 이 두려웠다는 이야기를 하셔서 그런갑다 했습니다.

3. 삼중포인터는 쓸일이 많이 없어보여도 은근히 쓰면 좋은 부분이 있습니다. 주석이 없을라면 적어도 변수 명이나 로직 흐름이라도 매끄러울 필요가 있는데, 아무도 안건드린다면 과연 그럴까 싶긴 합니다.
Redeye
IP 211.♡.141.133
04-07 2022-04-07 07:01:02
·
코딩하는분 멋져보여요 전 엑셀의 vlookup만 주구장창 씁니다
들판에서
IP 14.♡.84.142
04-07 2022-04-07 07:06:01
·
1번은 싱글코어, 단일 프로세싱 시절의 산물이죠.
2번은 말도 안되는 개솔.. 스크립트언어는 예외처리 떡칠 되어 있습니다. 아마 캐시의 영향 같네요.
3번은 왜 그랬는지 짐작만 합니다. 나쁜 것이 아니군요.단지 올드할 뿐이죠. bind소스가 더 복잡할 겁니다.
커블
IP 221.♡.118.44
04-07 2022-04-07 07:10:06 / 수정일: 2022-04-07 07:21:52
·
1. 10년 넘게 대용량 문서를 다루는게 주요 업무다 보니, 어떻게 하면 수행 속도를 개선할 수 있을지 많은 고민을 해왔고, 아직도 하고 있습니다. 특정 지점을 억 단위로 지나가는 코드를 자주 짜거든요. 현재까지 결론은 if문 한번 어떻게 줄일지 고민할 시간에 구조적 문제점을 개선해라는 것입니다.
지금도 학구열 높은 후임들에게 if가 빠르냐 switch가 좋쟈 같은 질문이 들어오면 해당 구문 호출이 초당 만단위 이하라고 확신이 들면 시끄럽고 읽기 쉬운 코드로 만들어라고 합니다.
순환문은 4중 이상 순환이 들어갈 때만 한번 더 정말 필요한지 고민해 보라 하고, 재귀호출 쓰면 걱정스런 눈빛으로 보긴 합니다만 뭐라하지는 않습니다.
물론, if문 한번 줄이는건 습관화 되어 있습니다만, 요즘에는 속도보다 가독성이 우선이다는것을 정답으로 해 놨습니다.

2. 굳이 java가 더 빠른 케이스를 꼽으라면,
언어별로 일부 연산은 C보다 더 빠른 속도를 보이기도 합니다.
또, 기본 제공하는 라이브러리가 더 풍부 해서, C에서 제공하지 않는 연산을 아둥바둥 짜봐야 Java에서 제공된 기본 라이브러리 속도를 따라가기 힘든 케이스가 있긴 합니다.
후임들에게 지금 사용하고 있는 언어가 그렇게 느리지 않다라는 인식을 시켜주기 위해서 하는 말입니다만, C보다 Java가 빠르다는... 그냥 웃지요.

3. 90년대 유행하던 업계 농담이 있었죠. 주석 없는 코드, 알수없는 네이밍이 네 정년을 보장해주는 방법이라고. 그 때도 당연히 자조적인 농이었는데... 스트로스튜룹인터뷰가 새삼 생각나네요... ㅎ
실제 그런 코드를 본적이 있습니다. 암호같은 네이밍에, 코딩타임 추적도 잘 안해주던 시절에, 함순지, 변순지, 포인터 타입이 뭔지도 한참 추적해야 하는데다, 전처리기에서 복사해 쓰는 define 코드를 사용하는 매직 코드가 가득했죠.
꼬꼬마 시절에는 그런 코드를 보면서 '아, 내가 이렇게 부족하구나' 하고 생각 했는데 지금 돌이켜 보면 바보같은 생각이었습니다. 비웃어야 했죠.
설계하고 로직 만드는게 프로그래머인데, 코딩에서 희열을 느끼면 안되죠. :)
사실 매직코드 짜는걸 좋아하긴 합니다만 하다가 뭔 코든지 알아볼수 없다라고 후임이 말하면 (후임에게 걸리면...) '신기하지 않냐? 히히. ㅠㅠ' 미안' 합니다. 1에서 적었듯, 성능보다 가독성이 우선이거든요.
키리
IP 1.♡.110.253
04-07 2022-04-07 07:11:35
·
3.번중에 3중 포인터가 문제가 아니라, print 사용한게 문제였을겁니다. 확인 하기 위해, trace등의 만들어진 명령어가 있을겁니다.
Iil!liIIli!
IP 223.♡.72.194
04-07 2022-04-07 07:25:21
·
외주개발의 핵심 아닌가요?
난해하게 짜고 다른사람이 못건들게 하며 결국 나에게 입금하게 만든다.
recklessk
IP 118.♡.2.174
04-07 2022-04-07 07:25:48
·
그..그래도 선배가 있으시군요 흐흐
늦게 시작해서 그 흔한 SI 1인 파견만 나가보니
그지?같아도 선배같은 분이 있었으면 좋겠다 싶었네요 ㅜ
야채튀김
IP 39.♡.28.1
04-07 2022-04-07 07:25:49 / 수정일: 2022-04-07 07:26:31
·
해보고 뭐가 좋은지 알게 되었다면 그게 경력이고, 실력이지요
삭제 되었습니다.
삭제 되었습니다.
levi
IP 175.♡.235.1
04-07 2022-04-07 09:52:23 / 수정일: 2022-04-07 09:53:29
·
if문과 switch문은 용도에 맞게 써야합니다. 전에 코드리뷰를 하다보니 어떤 사람이 여러 케이스의 구문을 if else 여러개로 풀어서 코딩했더라구요.

예를 들면 if(한국인) ... else if(미국인) ... else if(일본인) ... else if(중국인) ... 이런식으로요.. 그래서 제가 이런 코드는 좋지 않다. switch 문으로 고쳐라 했더니, 이번에는 if문을 써야할 경우에도 switch문을 써서 바꿔놓았더라구요.

switch case(성공)... case(실패) 이렇게요.. 문제는 이 코드를 누군가가 카피해서 쓰다가 중간에 break를 빼먹어서 엉뚱하게 동작하더란 말이죠. 억지로 스위치문을 쓰려고 하니 코드 가독성이 안좋아서 가져다 쓰는 사람도 의미를 잘 모르고 대충 부분적으로 복사해다 넣었더라구요. 이 버그를 찾는데 정말 고생했었습니다.

요즘 시대에 알고리즘에 대한 이야기가 아닌이상, 무슨 구문이 좀 더 빠르니, 어떤 언어가 더 빠르니, 메모리를 덜 잡아먹느니 하는건 의미가 없다고 봅니다. himem 치고 게임하던 도스 시절도 아니고 말이죠.

저는 항상 코드를 이해하기 좋게 쓰라고 합니다. 본인 취향이 뭐든 상관없는데, 불필요하게 어렵게 코드를 작성하지 말라고 합니다. 직업 코딩에서는 이게 가장 중요하다고 생각해요.
견우
IP 222.♡.61.190
04-07 2022-04-07 14:26:35
·
클리앙에 이리 개발자가 많으시군요! 스크랩해뒀다가 두고두고 읽어야겠습니다. 읽어볼만한댓글이 많네요.
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB
업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
목록으로 댓글보기
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.