일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 글쓰기가필요하지않은인생은없다
- 조엘온소프트웨어
- pep8
- python
- 독후감
- flake8
- maxlinelength
- 코로나백신
- pyenv
- vscode
- codewars
- ProxyServer
- restfulapi
- Algorithm
- organizeImports
- goalng
- loadimpact
- codewar
- Lint
- 규칙없음
- printer_helper
- springboot
- GlobalInterprintLock
- httppretty
- opensouce
- 오큘러스퀘스트2
- conf
- Golang
- 유닉스의탄생
- typevar
- Today
- Total
목록프로그래밍 (31)
일상적 이야기들.
SICP 컴퓨터 프로그램의 구조와 해석이라는 책을 읽는데, 해당 책의 내용이 LISP 로 작성이 되어있다. 처음에는 LISP 깔기도 귀찮고, 그냥 대충 눈으로 읽히겠지 하면서 책을 읽기 시작했는데 후반에 가니 도무지 안 읽힌다. 언어가 익숙하지 않은 것도 큰 것 같아 LISP를 설치하고 따라쳐보면서 공부하기로 결심을 하였다. 설치 MAC 환경에서 찾아보니, SBCL과 emac으로 작업하는 모습들을 보았다. brew install sbcl Vscode에서 수행 vscode 내에서, terminal창을 열어두고 pallet를 이용하여 바로 수행하는 방식으로 수행하도록 되어있었다. 그런 부분들을 참고하여, 공부를 시작해보겠다. 출처
TestCode 지금 있는 속한 팀에 있기 전, 바로 직전에는 QA팀에서 Tool을 만들었다. 그때도 동일하게 테스트코드를 작성을 하였지만, 이 글에서 이야기하는 테스트코드와는 결이 달랐다. 개발자가 자신이 작성한 코드에 대한 최소한의 보증수표를 붙혀주는 것이 TestCase 작성인 것 같다. 하지만 개발자가 작성하는 TestCase에는 함정이 있을 수도 있다. 왜냐하면 자신이 작성한 코드이기때문에 방어적으로 코드를 작성하게 되는 것 같다. 실 사용자들은 기상천외한 값들을 넣을 수 있기때문에 따로 QA팀이 있고, 해당 팀에서 매뉴얼로든 프로그램이든 여러가지 케이스를 테스트하게 된다. 그 중에 나는 End-User 입장에서 테스트코드를 작성을 하였기에, PyTest로 작성하는 코드와는 달랐다. Pytest..
organizeImports 해당 옵션을 사용하면 import 영역 내의 중복된 이름들을 제거해주고, 알파벳순으로 정렬하는 기능도 가지고 있습니다. 그리고, 해당 기능을 통해서 import 내에서, pep8의 규칙에 따라 한 line의 길이가 80글자가 이상이면 multiline으로 분리하여 정렬을 해주고 있습니다. 왜 80글자인가 PEP8의 규칙에 의하면, Python 내에서 한 line의 길이는 80글자를 넘어가지 않을 것을 권고하고 있습니다. 이는 옛날에 개발 환경이 열악한 시절 한 창에서 표기하는 글자의 수가 80글자였기때문에 이를 규칙으로 삼고 있습니다. 하지만 현재에 와서는 한 라인에 80글자를 담아내기에는 너무 적은 표기법이라고 생각이 됩니다. 그렇기에, 팀내에서는 120글자를 제한으로 하고..
Lambda Lambda는 AWS에서 자주보던 용어였고, 일부 언어에서 Lambda식을 지원하는 것으로 알고 있다. python 또한 Lambda식을 지원하고 있으며, 이를 활용하면 함수형 프로그래밍 방식에 맞춰서 개발할 것이 가능하리라고 보여진다. Python에서 Lambda의 정의를 보면 다음과 같이 기재가 되어있다. ( w3school정의 ) A lambda function is a small anonymous function. A lambda function can take any number of arguments, but can only have one expression. 작은 익명의 함수라고 정의가 되어있으며, Parameter(arguments)는 여러개가 될 수 있지만, 하나의 표현식만..
Python을 이용하는 많은 이들이 intelliJ나 pycharm을 많이 쓰고 있다. 그러나 IDE에 굳이 종속적으로 작업을 진행해야하나 싶기도 하고 비싼 돈을 주고 라이센스를 이용하기도 싫고, 사용하지 않는 기능들이 덕지덕지 붙어있는 것들이 싫어서 vscode를 사용하고 있다. 다른 언어를 사용할 때에도, 굳이 또 IDE를 설치할 필요없는 간편한 vscode ! 그러나 홀로 vscode를 사용하다 보니, 팀원들과의 코드 인벤션이 맞지 않아 많은 고생을 하였다. 기본적으로 PEP8을 따르고 있는데, vscode의 기본인 pylint는 먼가 어설프게 pep8을 지켜주고 있었다. 그렇기에 대안으로 삼은 것이 다음과 같다. Pycodestyle pycodestyle은 vscode에서 pep8이라고 적혀있듯이..
React를 이용하여 Toy 프로젝트를 시작하였다. Front-end 영역은 원래 잘 못하던 분야기도 하고, 지식이 좀 부족한 부분들도 많아 좀 작업 진도가 많이 느린거 같다. 프로젝트 준비 react app의 골격을 잡아줄 수 있도록, 해당 app을 설치를 한 후 project를 init 해주자 npm i create-react-app # 프로젝트 생성 도우미 create-react-app [project명] # 프로젝트 생성.프로젝트 수행 cd [project명] npm start 프로젝트를 수행하게 되면, default port 3000번으로 수행이 되며, 프로젝트에서 수정 사항이 있을 시 자동으로 반영이 된다. CSS 적용. React를 배우기 위해서, 참조하였던 글에서 "materialize"을..
CLI 환경에서 프로그래밍을 하다보면, 실행 시에 전달을 해줘야하는 값들이 많이 존재하게 된다. 예를 들어서, 현재는 별로 사용되고 있지 않지만 windows 에서 종료를 위해서 예전에 많이 치던 showdown 명령어로 보자. shutdown -f -s -t 3600 알파벳 앞에, - 기호가 붙은 것들이 option 이며 각각은 다음의 뜻을 가지고 있습니다. f : 사용자에게 미리 경고하지 않음. s : 컴퓨터가 종료 됨. t : 종료될 시간을 지정. 이렇듯, 사용자에게 입력을 받아야하는 값들을 언제나 실행 후 입력을 받기에는 번거로움이 많다. 그렇기에 명령행 옵션을 사용할 수 있으며 python 에서는 argparse 라는 lib 으로 제공을 해주고 있다. import argparse parser =..
문제 - https://www.codewars.com/kata/54da5a58ea159efa38000836 불러오는 중입니다... 문제풀이 - 홀수번 나온 숫자를 구하는 문제로, 1차적인 생각으로는 나온 숫자를 Count해서 홀수인 값을 return 시키면 됩니다. - 그러나, 조금 더 나아가서 xor을 사용하게 되면 손쉽게 풀 수 있는 문제가 됩니다. - xor는 Bit연산으로 서로 다를 때 True로 전환이 되게 됩니다. 고로 동일한 값을 xor을 하게 되면 0의 값을 출력시키게 됩니다. - 그렇기에, 짝수번 나오게되는 숫자는 0으로 변경이 되게 되고 그렇지 않은 숫자는 남게 되는 것입니다. public class FindOdd { public static int findIt(int[] a) { in..
문제 - https://www.codewars.com/kata/counting-duplicates Codewars: Train your coding skills Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential. www.codewars.com 문제풀이 - 입력된 문자열에서, 중복된 char가 몇개 있는지 체크하는 프로그램입니다. - 그렇기에, a~z까지의 배열을 생성하고, 문자열을 순회하면서 해당 문자가 몇번 나왔는지 확인을 하게 됩니다. - 그 이후에, 지금까지 나온 갯수를 판단하여 1개 이상이 나왔다면, resultCnt를 ..
문제 - https://www.codewars.com/kata/5ce399e0047a45001c853c2b 문제풀이 - 주어진 배열을 순회하면서, 합을 구하는 구하는 문제입니다. - 0 번째는 0 ~ array.length 까지의 합. - 1 번째는 1 ~ array.length 까지의 합. - 쭉쭉쭉 array.length-1 번째는 array.length-1 ~ array.length까지의 합. - 이렇게 구하는데, 순차적으로 구하게 될 시에는 이중 for문을 사용하게 되므로, O(N^2)의 시간 복잡도가 됩니다. 그렇기에 이렇게 풀어서 제출을 하게 되면, Timeout 으로 fail이 나게 됩니다. - 뒤집어서 계산을 하여 넣게 된다면 for문 한번만 수행하게 되면 되므로, O(N)의 시간복잡도로 ..