반응형

자바 스트림 Skip 사용시 java.lang.IllegalArgumentException: -number 형태의 에러가 나는 이유는

skip 메서드의 인자로 0보다 작은 값이 들어 갔기 때문이다.

따라서 어떤 수치를 계산해서 skip에 인자를 전달하고 있다면 해당 값이 0보다 작지 않은 지 확인해보자.

skip 내부 로직

반응형
반응형

Upper of POI 3.x Version, cell fill color is set as follows

setFillBackgroundColor (x)

setFillForegroundColor (0)

자바 엑셀 파일 배경색이 계속 검정색이거나 안바뀔 때는 setFillForeGroundColor대신 setFillForeGroundColor를 사용하자. POI 3.x윗 버전부터는 ForegroundColor를 써야 바뀌는듯....

        CellStyle styleBlueColor = workbook.createCellStyle();
        styleBlueColor.setFillForegroundColor(IndexedColors.CORNFLOWER_BLUE.getIndex());
        styleBlueColor.setFillPattern(FillPatternType.SOLID_FOREGROUND);

        cell = row.createCell(0);
        cell.setCellStyle(styleLimeColor);
        cell.setCellValue("인보이스번호");
반응형
반응형

프론트쪽을 개발하다가 최근에 버그를 발견하고 포스팅 남겨본다.

            var endDate = new Date(date).getTime();
            var now = new Date().getTime();
            var diff = parseInt((endDate-now)/(24*3600*1000));

            //if ((!Object.is(diff, -0)) && (diff <= 7)) {  => 이게 맞는방식
            if ((diff >= 0) && (diff <= 7)) {   => 버그 생성 방식
                return true;
            } else {
                return false;
            }

위의 코드는 두 날짜를 비교하는 코드이다.

diff는 두 날짜의 차이를 숫자로 나타내 주는데 현재 날짜가 endDate보다 크다면 -0을 반환하게 된다.

만약 위와 같이 diff가 0보다 클 경우라고 조건을 주게 되면 -0일 경우 포함이 안될거라고 생각하지만....그렇게 생각한다면 경기도 오산이다.

자바스크립트에서는 다음과 같이 0과 -0이 같다고 생각한다.

따라서 값을 비교할 때는 위의 코드에서 주석처리된 것과 같이 처리해주어야 한다.

 

자세한 설명은 아래의 stackoverflow의 글을 참고하도록 하자

stackoverflow.com/questions/7223359/are-0-and-0-the-same

 

Are +0 and -0 the same?

Reading through the ECMAScript 5.1 specification, +0 and -0 are distinguished. Why then does +0 === -0 evaluate to true?

stackoverflow.com

 

반응형
반응형

객체를 복사 할 때 단순하게 '=' 연산자로 값을 주입하게 되면 얕은복사(Shallow Clone)가 이루어진다.

예를 들어, a객체가 있고 b 객체가 있을 때 b=a라고 주입하고 a 값을 변경하여도 우리는 b는 기존 a값을 가지고 있을거라 생각한다.

하지만 b도 변경된 a값과 동일하게 변경되게 된다.

따라서 자바스크립트에서 객체의 값을 복사할 때는 깊은 복사(Deep Clone)이 되도록 해주어야 한다.

b = JSON.parse(JSON.stringify(a))

와 같이 JSON 객체의 메소드를 이용하여 깊은 복사가 되게끔 해주자.

JSON.stringify는 자바스크립트 객체를 먼저 JSON문자열로 변환시키고 JSON.parse는 JSON문자열을 자바스크립트 객체로 변환시킨다.

JSON문자열로 변환했다가 다시 객체로 변환하기에 기존 객체에 대한 참조가 사라져 깊은 복사가 이루어지게 된다.

반응형
반응형

text 타입으로 되어 있는 컬럼에 데이터를 insert하려고 하자 다음과 같은 에러가 발생하였다.

Data truncation: Data too long for column

보통 텍스트형태의 데이터를 넣어봤자 500자 이내였기 때문에 이런 경우를 접해보지 못했는데 이번에 경험해보고 MYSQL의 text타입이 몇 글자 제한인지 알게 되었다.

TINYTEXT
- 범위 : 최대 255 글자

TEXT
- 범위 : 최대 65535 글자

MEDIUMTEXT
- 범위 : 최대 16777215 글자

LONGTEXT
- 범위 : 최대 4294967295 글자

65535글자면 왠만한 텍스트 데이터는 다 커버칠 것 같다.....LONGTEXT로 컬럼 type을 변경하여 처리하였다.

Solution => column type : TEXT -> LONGTEXT

반응형
반응형

쿼리 수행시 다음과 같은 에러 발생

ERROR: Memory limit exceeded Instance 5240c598fffb12fd:813807e3a953de95 of plan fragment F00 of query 5240c598fffb12fd:813807e3a953de91 could not start because the backend Impala daemon is over its memory limit

 

문제해결

클라우데라 IMPALA -> 구성 -> 단일 풀 메모리 제한(default_pool_mem_limit) 변경

아마 기본 1GB로 되어 있을 것이다.

 

클러스터의 메모리에 맞게 설정해주면 된다.

반응형
반응형

오늘은 정말 인상 깊게 읽었던 포스팅 하나를 소개할까 합니다.

글의 제목은 '적당히 잘하는 개발자' 입니다.

한 번 쯤은 방문해 보셨을 법한 '자바캔'의 블로그를 운영하시는 최범균 님이 쓰신 포스팅입니다.

javacan.tistory.com/514#comment12490475

 

적당히 잘하는 개발자

졸업 전만 해도 굉장한 개발자가 되고 싶었다. 뛰어난 설계 능력과 코딩 속도를 자랑하는 그런 실력자 말이다. 이런 막연한 목표는 오래가지 않아 사라졌다. 3-4년 정도 경력을 쌓는 동안

javacan.tistory.com

이 글을 읽으면서 정말 많은 부분 공감하였습니다.

물론 저는 처음부터 '굉장한 개발자', '기술적으로 엄청 뛰어난' 개발자가 되고 싶지 않았음에도 많은 부분이 와닿았습니다.

개발자로 살아간다는 건 끊임 없이 나오는 IT기술들과 지식들을 습득하며 살아감을 의미합니다.

이렇다보니 어느 순간 '개발자로써 뒤쳐지면 어쩌지'라는 압박감을 가지고 살아가는 것 같습니다.

그리고 어느 순간 실력이 늘어나는 시점이 왔을 때 '와 나정도 실력이면 괜찮지'라는 생각이 들었다가 좀 더 다양한 경험들을 하며 공부를 하다보면 그런 생각을 했던 제 자신이 부끄럽게 여겨지는 시기도 오는 것 같습니다.

벼는 익을수록 고개를 숙인다는 말이 있듯이 IT분야에서도 통용되는 것 같습니다. 공부를 하면 할 수록 경력이 쌓이면 쌓일 수록 어느 한 편에 나도 모르는 불안감에 '모르는게 너무 많다'라는 생각이 듭니다.

하지만 제 생각엔 그렇습니다.

IT분야는 정말 광범위합니다. 한 사람이 그 모든 것을 잘 할 수 없습니다. 우리의 삶은 한정적이기에 굳이 지금 당장 필요하지 않은 것들을 습득하기 위해, IT 다양한 분야에서 뛰어난 개발자가 되기 위해 여가시간 모두를 사용하는 것은 어쩌면 즐거운 삶은 아닐 것 같습니다. 

너무 많은 부담감을 조금은 내려 놓고 지금 내가 하는 일을 잘하기 위해 시간을 보내다 보면 어느 순간 '적당히 잘하는 개발자'가 될 수 있을 거라는 생각이 듭니다. 적당히 잘하는 것도 쉬운 일은 아닙니다.

물론 뛰어난 개발자, 기술력으로 손꼽히는 개발자가 되는 것이 좋지 않다고, 나쁘다고 말하는 것이 절대 아닙니다.

어떤 개발자가 되고 싶은지는 본인이 선택하는 것이라고 생각합니다. 적당히 잘하는 개발자로 삶의 다양한 부분들에도 관심을 가지며 살아갈 것인지 많은 개인 시간과 노력을 투자해 정말 한 분야의 인정받는 뛰어난 개발자로 살아갈 것인지는 각자의 선택의 몫이라고 생각합니다.

또 정말 공감이 갔던 문구는 '꽤 많은 프로젝트가 기술 난이도가 아닌 다른 이유로 실패하는 것을 경험했다'입니다.

저 또한 다양한 프로젝트들도 경험하고 개인적인 토이프로젝트도 함에 있어서 해당 서비스들이 실패하거나 운영이 중단되는 이유는 결코 기술적인 부분의 결핍이 아니였습니다. 기술은 정말 중요하지만 서비스가 잘 돌아가기 위해 필요한 요소 중 하나라는 사실입니다. 높은 기술력 보다는 어쩌면 홍보나 마켓팅, 기획, 운영 등이 더 중요할지도 모릅니다.

어떤 개발자가 될 것인지? 이번 기회에 한 번 생각해보시면 좋을 것 같습니다.

youtu.be/GtJZTzJ2sxQ

 

긴 글 읽어 주셔서 감사합니다🙏

반응형
반응형

안녕하세요 오늘은 "개발자가 적성에 맞는지?" 에 대한 주제로 포스팅 해볼까 합니다.

일단 저는 판교 IT회사에서 7년차 개발자로 일하고 있습니다.

개발자분들이시라면 아니 대한민국에서 직장을 다니시는 모든 분들이시라면 한 번쯤은 "내가 하는 일이 내 적성에 맞는건가?" 라는 질문을 해보셨을거라 생각합니다.

저 또한 그렇습니다.

개발자로 처음 회사에서 일하던 2014~2015년 정말 하루 하루 수십번도 더 고민했습니다. 왜냐구요???

 

너무 못하는 것 같아서요. 주변 사람 동료들과 비교했을 때 너무 부족하다고 느꼈고 그로 인해 자신감과 자존감을 바닥을 향해 달려가고 있었으니까요. 경쟁사회에서 내가 남들에 비해 잘하지 못한다고 생각이 드는데 그 일이 재미있을 수가 있을까요??? 하물며 전혀 못해도 밥먹고 사는데 지장없는 게임을 하는데도 이 룰이 적용되는 걸 본다면요.

 

개발자로 일을 해서 밥벌이를 해야 하는 것은 결국 개발자로서의 능력을 갖추어야 하는 것이 첫 번째입니다. 이 기본적인 능력이 갖추어지지 않는 이상  '개발이 내 적성에 맞는건가'라는 고민이 뒤를 따라다니며 괴롭힐 것 입니다. 기본적인 능력이 갖추어지지 않은 상태라면 매번 회사에서의 일이 고되고 남들과의 비교에서 오는 자괴감에 더 이상 개발자로 일하고 싶지 않을 것 입니다.

 

저 또한 그랬습니다.

 

신입으로서 부족한게 당연한거지만 그럼에도 불구하고 잘하는 주변 동기들을 보며 한 없이 작아지는 저의 모습을 마주했습니다. 특히나 '개발'이라는 분야는 더욱 그런 것 같습니다. 같이 입사한 신입사원임에도 그 실력차이는 비교도 안 될 만큼 크게 날 수 있습니다. 하지만 그렇게 포기하고 싶지는 않았습니다. 정말 자존감은 하루 하루 바닥을 칠 정도로 힘들었지만 이렇게 포기한다면 어떤 일을 하더라도 잘해낼 수 없을 것 만 같았습니다. 정말 나중에 너무 힘들어 회사를 그만 두더라도 최소한 내 스스로에게 "그래 할 만큼 했어"라는 최소한의 핑계거리라도 있어야 아쉬움이 남지 않을 것 같았습니다. 

 

그래서 공부했습니다. 저의 목표는 남들에게 엄청난 인정은 받지 못할 지언정 스스로 '아 이 정도면 그래도 나는 최소한 개발자의 능력은 갖추었어!'라는 생각이 들정도였습니다. 그 정도 까지 가는데는 최소 2년에서 3년은 필요할 것 같다는 생각이 들었습니다. 그래서 공부했습니다. 회사가 끝나고 회사에 남아 최소 3~4시간 이상 공부하였습니다. 하지만 이 정도 공부는 저 뿐만 아니라 동기들 대부분이 하였습니다.

 

저는 이 정도로는 안된다고 생각했고 집 주변에 독서실을 끊어 주말 공휴일 독서실을 다니며 동기들보다 조금이나마 더 공부하려고 노력했습니다. 지금은 그 때처럼 주구장창 독서실에 앉아 책을 읽으며 개발공부를 하지는 않습니다. 하지만 그 당시 제대로 된 공부 방법도 몰랐고 무엇을 어떻게 해야 할지 감도 안잡히던 시절 내가 공부하고 있는 분야의 지식을 이론적으로 습득하는 것만으로도 제 스스로에게 굉장히 힘이 되었습니다. 그리고 회사에서 프로그래밍을 할 때 이해가 되지 않던 부분들에 대해서도 차근 차근 이론적인 공부가 뒷받침되니 이해되는 부분이 굉장히 넓어졌습니다. 그렇게 시작하였습니다.

 

저는 동기들보다 더 많이 노력하고 공부하여야 했습니다. 그렇게 시작한 공부했던 시절들이 "개발자 안했으면 어쩔 뻔 했어"라는 생각을 가지게 된 지금의 저를 만들었습니다. 6년 동안 기술블로그를 운영하고 회사가 끝나면 토이프로젝트를 하고 개발 관련 유튜브 영상을 찍고 있는 저를 만들었습니다. 신기하지 않습니까?

 

그래서 저는 생각합니다.

 

개발자가 적성에 맞는지? 고민하는 시간에 조금이라도 시간을 투자해 공부해야 한다고, 적성에 맞는지 안맞는지는 스스로가 그 분야에 대해 어느 정도 실력이 생기고 나서 해보는 것이라고, 그러지 않을거면 적성에 맞지 않아 그만뒀다고는 하지 말자고.

 

정말 잘하는 실력을 갖추었음에도 그 일이 재미없고 일을 하는 동안 지겹고 따분하기만 하다면 그게 바로 적성에 맞지 않는 것 입니다. 제가 생각하기엔 그렇습니다. 제가 경험했고 컴퓨터공학부 시절 코딩은 나랑 안맞는다며 살아온 제가 이렇게 변했습니다.

 

이 글을 읽는 모든 분들은 그래도 내면에 '개발을 잘하고 싶다'라는 생각은 조금이나마 다들 가지고 있으실 거라 생각합니다. 그렇기 때문에 이렇게 고민하고 계시는 거고 이 글을 여기까지 읽고 계실거라 생각합니다. 

 

그렇다면 '개발자가 적성에 맞는지' 확인하기 위해 그만 둘 땐 그만 두더라도 '밑져야 본전'이다는 심정으로 1년만 투자해보세요.

달라집니다.

해당 내용을 영상으로 만들어보았습니다.

www.youtube.com/watch?v=Z5EVaaKSx9A

 

반응형
반응형

정말 인성갑 유튜버이신 야식이님👍

제가 정말 좋아하는 먹방유튜버이신데요 특유의 차분함과 말투로 보고 있으면 편안한 마음이 듭니다. 영상을 보신 분들은 아시겠지만 정말 어려운분들을 위해 기부도 많이하시는 선한 영향력을 끼치시는 분이십니다.

야식이님이 먹방을 찍으러 다니는 곳을 보면 정말 가성비 좋은 맛집들이 많은데요! 

야식이님이 다녀오신곳을 지도서비스로 쉽게 찾아가보세요.

야식이님이 다녀오신 곳을 지도로 한눈에 보실 수 있습니다.

좀 더 지도화된 서비스를 통해 야식이님이 다녀오신 곳들을 쉽게 찾아가 보세요!

https://moobe.co.kr/channels/1

 

Moobe

채널 - 야식이

moobe.co.kr

 

영상으로 보고 찾아가는 맛집 서비스~! Moobe입니다. GoGO💃

반응형

+ Recent posts