Level : WORDPRESS BOOK LINKEDIN PATENT Send Mail 동냥하기 hajunho.com

106

살며 생각하며, / / 2020. 3. 11. 16:03
반응형

2020-03-11 10:55:50.371520+0900 MBASS[7366:1592767] GlobalVar.globalVar.currSite_nmphs  local info
2020-03-11 10:55:50.413450+0900 MBASS[7366:1592767] [TableView] Warning once only: UITableView was told to layout its visible cells and other contents without being in the view hierarchy (the table view or one of its superviews has not been added to a window). This may cause bugs by forcing views inside the table view to load and perform layout without accurate information (e.g. table view bounds, trait collection, layout margins, safe area insets, etc), and will also cause unnecessary performance overhead due to extra layout passes. Make a symbolic breakpoint at UITableViewAlertForLayoutOutsideViewHierarchy to catch this in the debugger and see what caused this to occur, so you can avoid this action altogether if possible, or defer it until the table view has been added to a window. Table view: ; layer = ; contentOffset: {0, 0}; contentSize: {288, 312.5}; adjustedContentInset: {0, 0, 0, 0}; dataSource: >



대기업 프로젝트 팀에 있는데 최근 프리랜싱 개발자 한 분이 정말 일을 많이 하시고도 일을 그만 두셨고,

다른 프리랜싱 개발자분은 이 개발을 떠나시겠다고 하시며, 퇴사를 하셨습니다.

 

전자는 PM이 그 분이 안드로이드 및 서버까지 하시는 줄 몰라서 막 푸시를 한 이유였고,

실력 없다고 주변에 말하고 다니다가 새로 오신 분이 서버는 못하겠다고 해서 일정이 계속 지체되고

주변에서도 그 분 평판이 좋았다는 것을 알자, 그 분이 잘하는 분이었다고 말을 바꾼 상황입니다.

떠난 분 나이는 50대

 

후자는 iOS가 메탈로 바뀐지 몰라서(그 분은 안드로이드 개발자) 3D로 안드로이드 개발은 다 했는데,

결국 개발 일정이 밀렸습니다. 당연히 PM, PL은 몰랐고 그 팀에 iOS 개발자는 늦게 왔어요. iOS 개발자와

커뮤니케이션 하다 그 쪽 팀 사람들과 친해졌는데 그 분은 메탈로 모두 구현하셔서 마무리 하시며

OpenGL보다 메탈이 낫다고 하셨습니다. 이제 이 필드 이제 진저리 나고 나도 은퇴할 때 되었다며,

아예 개발을 관두신다며 퇴사하셨습니다. 나이는 이제 곧 60이 되시는.

 

어제 그 PM에게 말했습니다. 2명 퇴사하게 만들었는데 갑의 입장에서 직급으로 사람 찍어 누르지 말라고.

주변 증인도 3명 있어서, 나중에 이 글이 검증을 받기도 좋겠네요.

 

그래서 이 글을 씁니다.

 

뉴스 기자 분들이 파급력을 고려해서 진실도 타이밍을 맞춰서 보도 하는 것을 보고 정말 싫어했었는데,

6년이 지나서야 파급력이 왜 생기는지 왜 필요한지 알게 되었습니다.  그래서 최근 3개월 정도 ~억 ~억 

이라고 말하는 행동을 취하게 되었고, 오늘부터는 확실히 그렇게 해야 겠다는 생각이 들었습니다.

왜에 대한 모든 답을 할 수는 없지만 뭉뜽그려 말하면,

회사에서, 조용한 카페에서, 집에서 TV를 보면서도 생각을 하고 공부를 즐기시는 분들은 조용한데,

밖은 너무 시끄러운 세상이기 때문입니다. 저는 그렇게 생각하고 느껴서 자주 헤드폰을 쓰게 됩니다.

 

그리고 이건 뇌피셜입니다. iOS 개발자들은 대부분 영문으로 뭔가를  하기에 조용한 것 같고, 

어설픈 외국물 먹은 기획자 혹은 포주(격한 표현 ㅈㅅ)들이 마치 자기가 처음인냥 ... (오지지널스 안 봤는지...) 

그리고 그게 무슨 대단한 권력이라고 생각하는지 개발 일정을 어떻게든 줄이는 것에 분노하게 됩니다.

그러면 직접 개발하면 되지 소통 채널의 중심이 되지 정상적 커뮤니케이션을 넘어 개발 영역을 어이없게

침범하니 개발자 워라벨도 깨지는 것 같습니다. 최근 프로젝트 마무리 하고 떠난 iOS 개발자와 술 한잔

했었는데 뭐... 사실 PM 욕밖에 없어서 적지는 못하겠습니다. 저도 큰 기업에서 잠깐 PM 한 적은 있지만

외주랑 같이 개발하고 같이 호흡했거든요. 지금은 그 때 그 분들이 중소 기업들의 대표로 계셔서 재미있습니다.

 

이런 분노 외, 배움의 즐거움을 걸으며 인생까지 즐기시는 분들께 할 말은 아니나.

 

1. 세상에는 제 생각보다 개발자가 적고,

2. 개발을 이해하지 못하는 사람이 대부분이고,

3. 수십만 개(일전 대기업 솔루션 기준)의 버그와 혹은, 하나의 버그라도

 늘 버그와 함께 살았습니다. 생명과 관련되지 솔루션의 버그라면, 대수롭지 않게 생각했지만,

 많은 사람들이 너무도 크게 생각하는 것을 알게 되었습니다. 

 

1(조용한 닌자) 네트워크로 연결되어서 많아 보이지, 주변에는 얼마 되지 않는다는 점. 

그리고 연구직이라서 커뮤니케이션 보다는 혼자 공부하는 즐거움을 즐기는 것이 많다는 것이 개발자라는 점.

 

2(개발은 전문직) 사실, 8 시간의 일하는 시간 외에 대부분의 시간을 개발 관련 생각을 하고 살며 십 수년이 지나면

직업병이 생기는 것 같습니다. 아직 저도 실체 파악이 안되었지만 한 번 필터링 하고 말하지 않으면 주변 사람들이 

이해를 잘 못하는 것 같아요.

 

3(버그 발견하면 대부분 유레카) 페이스북은 왠만한 기업보다 시가 총액이 큽니다. 그런 페북앱도 가끔 죽거든요. 많은 곳에서

프리랜싱 하시는 분들이 혼자서 앱을 개발하는데 앱이 죽으면 유레카를 외치는 분이 많은 것 같아요. 물론, 개발자는

6시그마 정신으로 간헐적 버그도 수 많은 사람들에게 좋지 않은 인상을 줄 수도 있기 때문에 10달 임신 기간을 거치지

않더라도 회사에서 월급 루팡들의 톱니에 끼어 3달만에 한 번 아이를 출산해 보려고 노력 합니다. 다만, 잉여력이 좀

쌓여야 머리가 도는데 거의 반사적으로 버그들을 수정해야 할 때가 많죠.

 

저는 대부분의 경우에 NO라고 말할 수 있는 강심장을 가졌다고 생각하지만 아닌 분들.

대한민국 IT를 이끌어 오신 시니어 분들이 최근 연달에 회사를 떠나고,

그 뒷모습을 보며 참 많은 생각을 했더랬습니다.

 

저도 거짓말이 아닌 테두리 내에서 ~억 ~억 이라고 말하며 파급력을 가져 보려고 합니다.

추잡해 보이는데다 별 파급력이 없다는 것을 마케터도 알았으면 하고 많은 캐릭터들이

개발자를 따라가려고 하니 저도 상도를 깨고 해당 영역 침범하려구요. 물론, 코딩은 계속

합니다. 영원히 하려구요. ㅋㅋ

 

혹시, 이 글과 연루된 다른 분들이 이 글을 보신다면 늘 응원한다고 말씀드리고 싶습니다.

따로 이야기 한 것 외에도 이런 관점에서 늘 응원 한다고 말씀드리고 싶습니다.

그리고 대한민국 시니어 개발자 분들께 고맙다고 말씀드리고 싶어요.

 

P.S 저 아직 그 PM 과 일하고 있습니다. 다음 연봉 사인도 6개월이나 남았구요,.

자유로운 천성은 어쩔 수 없나봐요.ㅋㅋㅋㅋ


코드 제거

    // 네비게이션바 숨김
    //self.navigationController.navigationBar.hidden = YES;
    
    //     권한 현장이 없으면 홈버튼 사용불가
    //    [mBtnHome setEnabled:NO];

 
//    self.title = @"";

//    self.title = @"Home";
    /*
     if (nil == mQtChkLst) {
     mQtChkLst = [[DCH_BsQtChkLst alloc] initWithNibName:@"DCH_BsQtChkLst" bundle:[NSBundle mainBundle]];
     }
     self.title = @"";
     [mQtChkLst initializeData];
     [self.navigationController pushViewController:mQtChkLst animated:NO];
     */

 //    self.title = @"";

/*
    if (nil == mVrfChkInfoDwldList) {
    mVrfChkInfoDwldList = [[HJH_CheckingDownloadList alloc] initWithNibName:@"HJH_CheckingDownloadList" bundle:[NSBundle mainBundle]];
    }
    self.title = @"";
    [self.navigationController pushViewController:mVrfChkInfoDwldList animated:NO];
    */
    //    self.title = @"";

//    self.title = @"";

//    self.title = @"";

    /*
     if (nil == mMainMnu) {
     //mMainMnu = [[FrontViewController alloc] init];
     mMainMnu = [[FrontViewController alloc] initWithNibName:@"FrontViewController" bundle:[NSBundle mainBundle]];
     }
     self.title = @"";
     [self.navigationController pushViewController:mMainMnu animated:NO];
     */



    /*
     if (nil == mMainMnu) {
     //mMainMnu = [[FrontViewController alloc] init];
     mMainMnu = [[FrontViewController alloc] initWithNibName:@"FrontViewController" bundle:[NSBundle mainBundle]];
     }
     self.title = @"";
     [self.navigationController pushViewController:mMainMnu animated:NO];
     */

//    [[self.btnSiteInfo layer] setBorderColor:[UIColor colorWithRed:246/255 green:135/255 blue:38/255 alpha:1].CGColor];

//     GlobalVar.globalVar.userSelectionSiteInformation.nm_prgs_phs

//[GlobalVar alertMsgOKWithTitle:@"대림건설" message:@"로그인에 실패하였습니다."];

//[self 에러처리함수: sResult ];

/*
         if (0 == [list count]) {
         [GlobalVar alertMsgOKWithTitle:@"대림건설" message:@"권한 현장이 없습니다."];
         return -1;
         }
         */
        

//        [xmlRequest addFetchSQL:[NSString stringWithFormat:@""


//                                 ,mSiteCd//,GlobalVar.globalVar.currSite.cd_site

//[self 에러처리함수:[e reason]];

//    [self.btnProgressStep setTitle:
//    [GlobalVar loadFromUserDefaults:@"aptprogress"]
//                                       forState:UIControlStateNormal ];


/*
 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
 {
 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
 if (self) {
 // Custom initialization
 }
 return self;
 }
 */

dnt_vrf_cplt="" dnt_vrf_rqst="" nm_nipt="주방TV위치 _ 상부장 우측(싱크대 좌측) 설치" nohs="0805" seq_nipt="6" yn_vrf_cplt="N">2020-03-11 13:43:45.390649+0900 MBASS[568:50453] cnst_vrf_rqst...요청-[2020/03/05] 신청 색상과 다름
2020-03-11 13:43:45.391189+0900 MBASS[568:50453] cnst_vrf_rqst...요청-[2020/03/05] 욕조 파손
2020-03-11 13:43:45.391551+0900 MBASS[568:50453] cnst_vrf_rqst...요청-[2020/03/05] 주방TV 미부착 확인바람
2020-03-11 13:43:45.391908+0900 MBASS[568:50453] cnst_vrf_rqst...요청-[2020/03/05] 우측모서리 찍힘
완료-[2020/03/05]
2020-03-11 13:43:45.392259+0900 MBASS[568:50453] cnst_vrf_rqst...요청-[2020/03/06] 거울파손 확인
2020-03-11 13:43:45.392617+0900 MBASS[568:50453] cnst_vrf_rqst...요청-[2020/03/06] 안덕선 작동 안함
2020-03-11 13:43:45.450046+0900 MBASS[568:50453] cnst_vrf_rqst...요청-[2020/03/05] 별매품) Jsksks / 강마루 색상_GREY OAK(TG-039A-2)
2020-03-11 13:43:45.490849+0900 MBASS[568:50453] cnst_vrf_rqst...요청-[2020/03/10] 인덕션 작동 불량
2020-03-11 13:43:45.628340+0900 MBASS[568:50453] cnst_vrf_rqst...요청-[2020/03/05] ㅓ나마나마??????
Message from debugger: Terminated due to memory issue


            //data.nm_cpny = [contentNode valueForAttributeNamed:@"nm_cpny"];
//            NSLog(@"data.cd_dong %@", data.cd_dong);
//            if([data.cnts_req_vrf isEqualToString:@""]) ; else
//            NSLog(@"cnst_vrf_rqst...%@", data.cnts_req_vrf);

//            NSString *d = [contentNode valueForAttributeNamed:@"cd_dong"];
//
//            data.cd_cpny = [d substringToIndex:10];
//            if([d length] > 10) data.nm_cpny=[d substringFromIndex:10];

//                                 ,mSiteCd//,GlobalVar.globalVar.currSite.cd_site

  for (int nIndex = 0; nIndex < nSize; nIndex++ ) {...} 

    sqlite3_finalize(compiledStatement);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            }
            sqlite3_close(database);;;;;;;;;;;;;;;;;;;;;;;;;;;;
            


        contentNode = [[userNode childElements]objectAtIndex:nIndex];
     
                    //!테이블 인서트
                    NSString *query = @"insert into ddtbt_hosh_nipt(cd_dong,nohs,cd_tppg,seq_nipt,nm_nipt,cnst_vrf_rqst,dnt_vrf_rqst,yn_vrf_cplt,dnt_vrf_cplt,cnts_req_vrf) values(?,?,?,?,?,?,?,?,?,?);";
                    const char *insert_stmt = [query UTF8String];
                    
                    if (sqlite3_prepare_v2(database, insert_stmt, -1, &statement, NULL) == SQLITE_OK) {
                        sqlite3_bind_text(statement, 1, [[contentNode valueForAttributeNamed:@"cd_dong"] UTF8String], -1, NULL);
                        sqlite3_bind_text(statement, 2, [[contentNode valueForAttributeNamed:@"nohs"] UTF8String], -1, NULL);
                        sqlite3_bind_text(statement, 3, [[contentNode valueForAttributeNamed:@"cd_tppg"] UTF8String], -1, NULL);
                        sqlite3_bind_text(statement, 4, [[contentNode valueForAttributeNamed:@"seq_nipt"] UTF8String], -1, NULL);
                        sqlite3_bind_text(statement, 5, [[contentNode valueForAttributeNamed:@"nm_nipt"] UTF8String], -1, NULL);
                        sqlite3_bind_text(statement, 6, [[contentNode valueForAttributeNamed:@"cnst_vrf_rqst"] UTF8String], -1, NULL);
                        sqlite3_bind_text(statement, 7, [[contentNode valueForAttributeNamed:@"dnt_vrf_rqst"]UTF8String], -1, NULL);
                        sqlite3_bind_text(statement, 8, [[contentNode valueForAttributeNamed:@"yn_vrf_cplt"] UTF8String], -1, NULL);
                        sqlite3_bind_text(statement, 9, [[contentNode valueForAttributeNamed:@"dnt_vrf_cplt"] UTF8String], -1, NULL);
                        sqlite3_bind_text(statement, 10, [[contentNode valueForAttributeNamed:@"cnts_req_vrf"] UTF8String], -1, NULL);
                    }
                    
                    sqlite3_step(statement);
                    sqlite3_reset(statement);
        
Message from debugger: Terminated due to memory issue

DB 작업은 개수 나눠서 해결.(개뻘짓)




반응형

'살며 생각하며,' 카테고리의 다른 글

108  (0) 2020.03.13
107  (0) 2020.03.13
105  (0) 2020.03.11
104  (0) 2020.03.09
103  (0) 2020.03.08
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기