본문 바로가기
반응형

전체 글131

Kotlin 리스트 분할 및 병합하기(with chunked, windowed) 아래와 같은 리스트 2개가 있고, 두 개 리스트를 합쳐서 아래와 같은 결과를 만들고 싶다면 어떻게 해야 될까? A List 1 2 3 4 5 6 7 8 9 B List 100 200 300 400 500 600 700 800 900 결과 List 100 200 300 1 2 3 400 500 600 4 5 6 700 800 900 7 8 9 난 아래와 같은 방법을 생각했다. (혹시 더 좋은 알고리즘이나 생각이 있다면 알려주세요) 1. A List와 B List를 각각 3등분으로 나눈다 2. B List를 for문을 돌면서 각 index에 맞춰서 넣어주는 작업을 한다. 3. 합쳐진 list들을 풀어서 평평하게 만드는 만드는 작업을 한다. 코드로 옮겨보면 아래와 같이 된다. 하나씩 살펴보자 1 Line va.. 2020. 9. 2.
깊게 파놔야 쉽게 이야기 할 수 있다. 블로그에 글을 쓴다는것 자체가 스스로의 기록과, 학습을 위해서도 있지만 내가 쓴 글이 누군가에게 보여진다는것 자체가 어느 순간 부터 부담으로 다가왔던 것 같다. 그래서 뭔가 글을 쓰려면 꼭 알차고 정말 좋은 내용이 담겨 있어야 될 것 같고, 내용을 좀 더 다듬어야 될 것 같고, 틀린 내용을 기재하면 안될 것 같고 등등 부담이 가중되는것 같다는 생각이 들었다. 이런 생각이 꼬리에 꼬리를 물다, 어느 순간 글쓰기를 포기 하게 되었다. 하지만 글을 쓰지 않는 시간이 길어지면 길어질수록 스스로에게 불편함이 느껴지는것 같았다. "벌써 마지막글이 5개월 전이구나" "아... 적어도 뭔가 개발자의 커리어를 위해서라도 무엇인가 정리 해놔야하는데.." "내가 예전에 무엇을 했었더라...? 블로그에 정리해놨으면 좋았을텐데.. 2020. 7. 21.
SourceTree 에서 한꺼번에 branch 삭제하기 SourceTree를 사용하여 작업을 하다보면 어느순간 내가 만든 브랜치들이 널부러져있는 경우가 생기가 된다. 정신 차리고 보니 이런 상태 ...!! 내가 많은 작업을 했구나 뿌듯해 할 수도 있지만 반면에 너무 많은 브랜치에 내가 무슨 작업을 했는지 잊어버리게 되는 상황이 발생한다. 하지만 이걸 하나하나 다 지우는것도 엄청난 노가다 아닌가? 내가 삭제하고자 하는 브랜치를 우클릭 해보면? 하나씩은 저런식으로 지울수 있는데 내가 삭제하고자 하는 브랜치가 다수라면 여간 노가다가 아닐 수 없다. 간단하게 한꺼번에 브랜치들을 삭제하는 방법을 알아보자 상단바에 보면 Branch 메뉴가 보일것이다. 눌러보면 짜잔 하고 Delete Branches 메뉴가 나타났다. Delete Branches 탭이 있고 여기서 내가 .. 2020. 2. 12.
클래스 생성시 맨 하단에 자동 줄바꿈 처리하기 Intellij에서 클래스를 새로 생성할때, 아무런 설정을 하지 않으면 클래스 가장 하단에 새로운 라인이 생기지 않는다. 그래서 Git에서 확인해보면 위의 스크린샷과 같이 No newline at end of file 이 뜬다 매번 클래스를 생성할때마다 한칸을 띄워주는건 매우 번거로운 작업이므로 아래와 같이 설정을 해주면된다. Editor > General > Other > Ensure line feed at file end on Save 체크후 OK 버튼 클릭 이후 다시 클래스를 생성해보면 아래와 같이 하단 줄바꿈이 이루어진것을 확인할 수 있다. :) 2020. 1. 15.
[Linux] 로그에 찍힌 API 콜 횟수 구하기 서비스를 운영하다 어떠한 API가 많이 사용될까 궁금한적이 있었다. 리눅스 명령어를 잘 몰라서 grep으로 대충 로그파일 뒤져서 눈으로 대충 아 몇개구나 파악하곤했었는데 조금더 확실한 방법을 알게되었다. nginx 로그를 보면 대충 이런식의 API 콜 기록이 남아있는걸 확인할 수 있다. 개인적으로 운영하는 서비스라서 로그가 듬성듬성 있지만, 회사에서 운영하는 서비스의 경우에는 초단위로 엄청난 로그가 수집된다. 이를 통계 내려면 어떻게 해야될까? cat access.log(로그파일 PATH) | cut -d " " -f 7 | sort | uniq -c | sort 이렇게 명령어를 날려보면? 호출된 수가 많은 순서대로 정렬되어서 해당 내용이 출력된다. 따라서 어떤 API가 가장 많이 호출되고 있는지 알 수.. 2020. 1. 11.
VI 문자열 일괄 변경하기 이런 내용의 파일이 있다고 해보자, dd를 대문자로 변경하고싶다면 어떻게 해야될까? 단순한 방법은 Shift + i 를 누른다음 각각 dd 문자로 이동하여 DD로 수정하는 방법이 있겠다. 하지만 dd의 문자열(내가 변경하고자하는 문자열)이 엄청 많이 있다면? 그만큼 노가다를 해야될 것이다. 일괄 변경하는 명령어를 사용하도록 하자 :%s/{변경하고자 하는 문자열}/{변경할 문자열} 이후 엔터를 쳐보면? 내용이 잘 변경된 것을 확인 할 수 있다. 2020. 1. 11.
AWS EC2 하드디스크 용량 늘리기 서버를 운영하다보면 서버의 하드디스크 용량이 부족해서 늘려야할 상황이 발생할 수 있습니다. 저도 전혀 생각도 안하고 있다가 운영중인 앱의 서버가 마비되서 동작하지 않는 현상이 발생했는데요 서버를 들어가보니 아래와 같은 에러가 뜨고 있었습니다. 서버에 무엇인가 문제가 있어서 배포를 하려고 보니 장치에 남은 공간이 없다는 에러메세지가 뜨고 있는 상황이었습니다. 재배포도 안되고 난감한 상황이라 용량을 확인해보니 (명령어 : df -h) 현재 사용중인 용량이 가득 차있는 것이 아니겠습니까. ㄷ ㄷ 현재 상황에서는 로그도 쌓이지 않고, 사진업로드는 당연히 안되며 아무것도 동작하지 않는 악몽과도 같은 상황이었습니다. 급한대로 이것저것 쓸때없이 용량 많이 차지하는것들을 지워봤으나, 크게 공간이 확보되지 않았고 용량 .. 2019. 8. 25.
앱 설치화면 보내기 또는 해당 앱 실행하기 우리는 안드로이드 앱개발하다가 아래와 같은 상황을 개발 해야될 때가 있다. - 특정 앱이 있으면 그 앱을 실행킨다. - 만약 없다면 플레이스토어에서 해당 앱을 설치하도록 유도한다.어떻게 해야될까? 우선 사용자의 폰에 내가 실행시키고자 하는 앱이 설치 되어있는지 판단해야된다. 앱이 설치가 되어있다면 그 앱을 intent를 활용하여 연다. 설치가 되어있지 않다면 구글 플레이스토어에 그 앱의 설치화면으로 보낸다. 위의 로직을 구현하면 된다. 로직은 So Simple! 추가 Tip 코틀린에서 확장함수를 사용하는 걸 좋아한다. 코드에보면 fun Context.market(..), fun Context.openApp(..)과 같이 Context를 확장한 함수를 볼 수 있는데 저렇게 사용하면 Context영역 아래에.. 2019. 8. 25.
2019 상반기 회고 커리어 전환 클라이언트 개발자 > 서버 개발자로 커리어 전환을 했다. 협업 회사에 입사한지 어느덧 2년이 넘었다. 1년 6개월 가량은 거의 혼자서 하나의 서비스를 전적으로 맡아서 만들었는데, 안드로이드 앱 개발 + API 개발로 거의 대부분의 시간을 보냈다. 혼자서하는 코딩은 장단점이 명확했는데, 장점은 마음 편하게 내가 사용하고 싶은 기술들을 마음껏 해볼 수 있다는 것이었고, 단점은 내가 작성한 코드에 대한 검증이 힘들고 자랑도 할 수가 없다는 것이었다. 따라서 성장하는 느낌이 크게 느껴지지 않아 우울했던 적이 많았다(처음에는 이것저것 흰색 도화지에 마음껏 낙서할 수 있어서 좋았지만 시간이 흐를수록 내가 잘하고 있는지 아닌지 모르는 상태가 오래가니 힘들어지더라). 그리고 이후 시점 ~ 현재까지(약 7개.. 2019. 8. 7.
반응형