본문 바로가기

분류 전체보기35

Python 비트연산자(Bitwise Operator) << , >> , |= , &= 등 알고리즘을 풀다가 모르는 연산자가 나와서 포스팅 한다. , |=, &= 는 비트 연산자이다. & (Binary AND) : bit 단위로 and연산을 한다. | (Binary OR) : bit 단위로 or연산을 한다. ^ (Binary XOR) : bit 단위로 xor연산을 한다. ~ (Binary NOT) : bit 단위로 not연산을 한다.(1의 보수) > (Binary right Shift) : bit 단위로 오른쪽으로 비트단위 밀기 연산을 한다. 예를 들어 a = 0011, b = 1100일 때, a & b 는 둘다 1 일이여야만 1이기 때문에, 0011 1100 _____ 0000 해서 0000이 된다. # 비트 연산자(Bitwise Operators) a = 0b10000001 b = 0b11.. 2020. 2. 8.
개발자가 컴퓨터를 백업하면 해야하는 일들 (Git 설치 / 전역변수 지정 / Node 설치) 블루 스크린이 너무 자주 떠서 결국 컴퓨터를 싹 밀어버렸다... Blue screen of Death....  개발자가 컴퓨터를 백업하면 무엇을 먼저 해야할까? 나는 웹 개발자로 npm, git을 전역변수로 호출하기 위해 설정을 해주어야한다. 이 과정을 포스팅하고자 한다. (언젠가 이부분 자동화하고 만다! )   GIT 설치 www.git-scm.com/download 에 들어간다. window는 윈도우 버전/ mac os 은 mac os 버전을 깔면 된다. 요기서 컴퓨터 사양에 맞게 설치! 특별한 설정 없으면 ... NEXT 클릭클릭클릭!!  $git config --global user.name "Name명"$git config --global user.email "메일주소" $git --list  .. 2020. 2. 4.
Evernote를 대체할 노트앱 Notion 제한 없이 쓰자! 10$ credit 받기 / 노트 필기 앱 비교 분석 https://www.notion.so/work Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.A new tool that blends your everyday work apps into one. It's the all-in-one workspace for you and your teamwww.notion.so 현재 너무 유용하게 잘 쓰고 있는 노션 앱이다.  워낙 실용적인 노트 필기 앱에 관심이 많아서, 내 일상을 정리해주고 차곡차곡 기록을 쌓을 수 있게 해주는 앱들을 그동안 차례로 써왔다.  원래 예전에 써본 앱들은 Trello, Google to do List, Evernote, 등이 있다.  순서대로 써본.. 2020. 1. 30.
서버 개발자 1일 1커밋 운동 시작하다 ! D + 7 "1일 1커밋을 실천해 보겠어!!" 라고 다짐하게 한.... 시작은 바로 이 동영상이었다. https://www.youtube.com/watch?v=V9AGvwPmnZU&t=171s 이 동영상을 보고 감명받아서... 나도 1일 1커밋을 해보기로 마음먹었다 ! 사실 1일 1커밋이라는게 글자 하나 바꿔서 커밋해도 1 commit이지만, 꾸준히 매일 자신의 개발 역량을 발전시킨다는 것을 눈으로 볼 수 있다는 것만으로도 상당히 의미있는 행위가 아니일까 한다. 그래서 현재 D+7 까지 진행한 상태 !! (인증샷..) 겨우 일주일이 아니라 벌써 일주일이나 매일매일 커밋을 하다니! 하며 스스로게 뿌듯해 하는 중이다. (참고로 전에 회사 계정을 썼을 뿐 절대 이전에 한달 동안 커밋을 안했던 것은 아니다 !!! ㅎㅎ) .. 2020. 1. 27.
기본 정렬 (sort) 알고리즘 인터뷰 단골 주제인 기본정렬 알고리즘을 정리해보자. 단순이 이렇게 풀면 된다, 에서 더 나아가서 어떤 해결방법이 다른 해결방법에 비해 가지는 장점과 단점을 함께 비교해보면 좋다. 정렬 알고리즘에는 크게 내부 정렬 방식 과 외부정렬 방식으로 나눠진다. - 내부 정렬 방식은 외부 보조 기억 공간을 활용하지 않는 것으로, Selection, Bubble, Quick, Insertion Sort 가 있다. - 외부 정렬방식은 대용량 자료 처리에 적합하고, 병합방식이 쓰인다. 가장 흔히 쓰이고 빠른 알고리즘 Quick Sort가 평균적으로 가장 좋은 성능을 낸다. 이미 정렬되어 있을 경우에는 Insertion Sort가 제일 빠르다. (바로 앞자리 한번만 비교하면 되기 때문) 시간 복잡도 O(n**2) : Bub.. 2020. 1. 26.
Python 프로젝트 Git Ignore 쉽게 설정하기 .gitignore 파일 쉽게 생성하기 프로젝트를 만들다 보면 깃에다가 푸쉬를 해야하는데, 로컬에서 명령어로 깔 수 있는 venv폴더 안의 내용 등, 깃에 푸쉬하지 않아도 되는 내용 들을 따로 .gitignore로 관리한다. 이 파일을 쉽게 설정하는 방법을 알아보자. 나는 다음의 웹사이트를 이용한다. https://www.gitignore.io/ gitignore.io Create useful .gitignore files for your project www.gitignore.io 이 웹사이트에 들어가서, Python을 검색하면 자동으로 python프로젝트에 사용되는 gitignore파일을 생성해 준다. 생성받은 .gitignore파일을, 프로젝트의 최상위 디렉토리에 배치한다. 만약에 직접 만들고 싶으.. 2020. 1. 24.
Python VENV 설정 시 module/python.exe 관련 invalid SDK 오류 해결 Python 가상환경 설정 : 모듈 패키지 버전을 프로젝트 별로 다르게 관리해야 할 때 venv로 수월하게 관리할 수 있다. 그런데 이 venv를 적용하다가 다음과 같은 문제가 생겼다. 1. pip로 다운받은 모듈을 파이참이 인식하지 못함 해당 내용을 보면, 전역적으로는 camelcase라는 모듈이 깔렸는데도 불구하고 로컬에서 해당 파일을 import를 못함을 알 수 있다. 이를 해결하기 위해 venv를 재 설치 하는 과정에서 오류가 났다. 2. venv설정 과정에서 SDK invalid 오류가 뜸. The SDK seems invalid. python 을 interpreter로 설정하는 과정에서 위와 같은 오류가 뜬 것. 이 오류가 뜨는 여러가지 경우가 있는데, 보통은 Python.exe 나 Pycha.. 2020. 1. 24.
네이버 AI Burning Day 해커톤 예선 참가! 드디어 네이버 해커톤 예선의 알고리즘 링크가 메일로 전달되었다! 이번에 네이버 AI Burning Day 에 예선에 출전하게 되면서, 눈이 뻑뻑하고 부어있지만... 저녁에 다같이 모여서 오손도손 알고리즘을 풀었다. 😎 나를 포함한 개발자는 열심히 문제를 풀고, 기획자 / 디자이너 / SE분은 ... 물자 (음식)을 조달해주시고 기획서를 열심히 작성해 주셨다! (우리가 곧 드림팀! 👌) 모임 장소는 내방역에 있는 '메종 드 스터디' 에서 진행 ! 메종 드 스터디는 한시간에 만 이천원을 내면, 음료수가 무한 제공 된다는 점이 장점이다. (하지만 스터디룸 대여 가격 조금 비싸다!) 들어가자마자 음료를 주문 했는데 갑자기 "손님 조용히 말씀해 주세요" 해서 당황.. 알고보니 스터디 룸 밖의 부분도 스터디 하는 .. 2020. 1. 23.
Python Pycharm 환경설정 / venv 설정 Pycharm 에서 파이썬 3.8 환경설정 (Project Interpreter)하기 Pycharm 에서 run 할 때 python 을 돌리도록 자동 선택하려면 (CTL + Enter 시 작동하도록) 다음과 같이 interpreter를 선택해줘야 한다. File - Setting - Project Interpreter (나중에는 설정한 environment를 입력) 이렇게 설정한 Interpreter 는 나중에 모듈을 깔았을 때 전역으로 깔리게 된다. Venv 설정 Venv 설정을 하면, 마치 npm install 시 npm 모듈들이 프로젝트 아래에 깔리는 것처럼, 전역이 아니라 프로젝트 안에 pip 모듈들이 깔리게 되어서 따로 관리할 수 있게 된다. 파이참에서 위 화면에서 설정 버튼을 누른 뒤 new .. 2020. 1. 8.
Java Input / Output Stream 을 열고 닫기 흔히 쓰는 Scanner.close() 를 쓰면 System.in 스트림을 다시 열 수 없다. 따라서 다음과 같은 방법으로 대체한다. Console에서 얻어온 Reader 객체는 close를 해도 실제 console 을 close 하지는 않는다. 또한, Console 은 명시적으로 Console 창을 제공하는 형태에서만 얻어 올 수 있다. 만약, javaw 로 실행하고 있거나, IDE 처럼 표준 입출력을 전환해서 사용하고 있는 경우에는 System.console() 로 Reader 를 얻어올 수 없다. import java.io.Console; import java.util.Scanner; /** * java.io.Console (jdk 1.6) * Invoking close() on the object.. 2019. 12. 29.