전체 글 23

[Spring] @RequestParam Annotation

백엔드 개발을 하는데 파이썬만으로는 한계가 있다고 여겨 얼마 전까지 자바 기초를 공부하다가 드디어 스프링까지 접하게 되었다. 이번에는 기존에 내가 하던 원리나 이론부터 알아가는게 아닌, 실전에서 먼저 부딪혀보고 그 이후에 차차 알아가려고 한다. 적어도 개발에서는 이게 더 효율적인 것 같다. 1. 개요 스프링에서 request를 Controller 안의 메소드에 @RequestMaping 어노테이션을 붙혀서 처리한다. @RequestParam을 사용하여 query 파라미터, form 파라미터 등을 request에서 추출하여 사용할 수 있다. 2. 간단한 예시 /list에 접속하면 책들의 전체 목록들을 보여주고, /list?keyword=example에서는 'example'이라는 키워드로 검색..

Spring 2022.10.18

최근 실천하고 있는 루틴

곧 있으면 백수생활을 한지 3개월이 되어간다. 초기에 세웠던 목표들을 지금 잘 실천하고 있는가...라고 누가 묻는다면 절반 정도는 하고 있다고 말할 수 있을 것 같다. 첫 한두 달은 놀고 딴짓하느라 많이 게으르고 헤이해졌었다. 해가 뜰 때쯤에 잠들고, 저녁 먹을 시간에 일어나고 가끔은 잠이 안 와서 밤을 새기도 했다. 그런 생활패턴도 처음에는 좋았지만 점점 무기력해지고 불안감에 휩쌓이는 것을 느낄 수 있었다. 그래서 요즘에는 나름 규칙적인 생활과 루틴을 유지하고 있다. 우선 아침 9시~10시에 일어나 간단하게 아침 식사를 한다. 보통 바나나를 먹는다. 그리고 집에서 웨이트 운동을 하고 간단하게 씻는다. 헬스장을 가는게 베스트라는건 알지만, 집에서 가려면 거리가 꽤 있기도 하고 성격상 먼 거리의 헬스장을 ..

일지 2022.08.30

보수, 10의 보수와 2의 보수

컴퓨터에서는 음수를 표현하기 위해서 2의 보수를 사용한다. 이건 고등학교 때 배웠었고 이해하고 있다고 생각했었는데, 최근 다시 접하니 잘 모르거나 애매한 부분이 꽤 있었다. 그래서 보수에 대한 개념부터 2의 보수를 사용해 뺄셈을 하고 음수를 표현하는 방식에 대해 정리해보려고 한다. 보수란? 보수(complement)란 각 자리의 숫자의 합이 어느 일정한 수가 되게 하는 수를 뜻한다. 이를 일반화하면 'x에 대한 (x+k)에 대한 보수는 k'라고 할 수 있다. Ex1) 십진수 4의 10의 보수는 6 Ex2) 십진수 11의 15의 보수는 4 이해를 돕기 위해서 우리가 일상적으로 사용하는 10진수를 예시로 들어 먼저 설명해보자. 9의 보수 각 자리의 숫자의 합이 9가 되게 하는 수이다. 10진수 258의 9의..

CS 2022.07.28

게으른 완벽주의자 벗어나는 법

오늘도 알고리즘님에게 권유를 받아 보게 된 영상이다. 귀찮아서 맨날 앞부분만 보고 넘기거나 재생목록에만 넣어두었던 영상인데 오늘에서야 전부 본 것 같다. https://www.youtube.com/watch?v=2CP19OV2oOw 올해 초에 나온 영상인데, 신년 계획에 대해 이야기하면서 저 주제로 영상을 올리게 된 것 같다. '게으른 완벽주의'는 항상 나의 정곡을 찌르는 단어이기에 안 볼 수가 없었다. 영상 내용을 요약하자면 아래와 같다. 1. 남한테 말하지 말 것 보통 어떤 일을 시작할 때 친구들이나 주변 사람들에게 자랑식으로 말하고는 했다. 그렇게 하면 지적 허영심이 채워지는 느낌이 들었으니까! 근데 문제는 그걸 채우고, '아 이정도면 많이 했다'라고 생각할 정도로 찍먹을 하고나면 흥미를 잃고 점점..

유튜브 2022.06.10

말을 잘할 수 있는 3가지 원칙

친한 친구들끼리 있을 때에는 괜찮은데 조금 어색한 사람이나 처음 보는 사람과 대화를 해야하는 상황이 오게되면 귀신같이 재미없어지는 사람이 있다. 바로 나다. 그래서 아래 영상을 보자마자 홀린 듯이 누를 수 밖에 없었다. 20명 중 단 1명만 이 3가지 원칙을 지켜 사람들을 감동하게 한다 솔직히 처음 유튜브 썸네일을 봤을 때에는 '모르는 사람들 앞에선 말도 못 꺼내는 아싸찐따였던 내가 이젠 슈퍼인싸?!?' 같이 사적인 자리에서 유용한 방법들을 기대했다. 그러나 생각과는 달리 영상에서는 청중들 앞에서 그들의 관심을 이끌어내고 자신의 이야기에 몰입시킬 수 있는 말하기 원칙에 대해 이야기하고 있었다. 일단 내용을 요약해보자. 첫째, 청중과 관련된 질문을 던져라. 말하는 사람인 나와 듣는 사람들은 오늘 처음 보는..

유튜브 2022.06.03

매력적인 사람이 되는 방법

당신의 매력은 무엇인가요? 매력적인 사람이 되는 첫 번째 방법을 이야기하면서 '게임 캐릭터 이론'이라는 것을 내세운다. 게임 캐릭터 별로 직업이 있고 특화된 분야들이 있다. 사람도 타고난 캐릭터라는 것이 있어서 다른 것을 하기 쉽지 않다. 각자 잘 하는 것이 있고, 한다고 해도 타고난 사람과 경쟁에서 이기기 힘들다. 여기서 매력은 자신이 잘 하는 것을 할 때 나타난다고 생각하는 것이 이 유튜버가 말하는 이론이다. 두 번째 방법은 궁금한 사람이 되는 것이다. 다른 사람들도 하는 것을 하면 딱히 그 사람에 대해서 궁금해지지 않는다. 이미 주변에서 많이 볼 수 있으니까. 그리고 자신이 그러한 것과 맞지 않는다면 경쟁에서도 항상 지게 된다. 요약하다보니 말이 이상해지는 것 같은데, 결국 남들이 가지지 않은 '개..

유튜브 2022.06.03

pandas 패키지 FutureWarning 해결하기

책에 있는 예제 코드를 가지고 내 입맛에 맞게 이리저리 수정하던 도중, for 루프를 돌 때마다 프린트되는 warning 메세지가 신경쓰여서 찾아보았다. FutureWarning: In a future version of pandas all arguments of concat except for the argument 'objs' will be keyword-only. 라는 경고 메세지였는데 처음 보는 것이어서 의아해했다. 찾아보니 함수의 positional argument와 keywork argument를 혼동해서 사용하는게 문제더라. 파이썬 코어 단에서 경고하는건 아니고, 파이썬의 써드파티인 pandas 패키지에서 추후 이런 식으로 arguments를 혼용하는 것을 허용치 않을 것이기에 이런 식으로 ..

파이썬 2022.06.02

selenium chrome webdriver 버전 자동관리 패키지

파이썬에서 셀레니움을 쓰려는데 크롬 버전에 맞는 웹드라이버를 받아야한다고 한다. 그러나 크롬이 업데이트 되서 버전이 맞지 않으면 에러가 발생하고 웹드라이버도 업데이트 해줘야 한다. 체감상 거의 매일 업데이트 되는 크롬이기 때문에, 자동으로 최신 버전의 웹드라이버를 다운받는 패키지를 찾게 되었다. pip install chromedriver-autoinstaller 실제 코드를 작성할 때는 아래와 같이 사용할 수 있다. from selenium import webdriver import chromedriver_autoinstaller chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0] try: browser = webdriv..

파이썬 2022.05.31

PyCharm 'Too broad exception clause' warning

코드를 작성하다가 except 구문에 밑줄이 그어져있길래 봤더니 'Too broad exception clause' 라는 warning이 떠있었다. 검색해보니 PEP8이라는 코딩컨벤션에 맞지 않는 내용이라 그런다고 한다. try: """code""" except: pass 코드는 위와 같았는데, except 뒤에 특정 exception을 추가하지 않아 발생한 문제같다. 당장은 그렇게 세세하게 나눌 필요도 없고, 저 밑줄을 보고 싶지 않았는데, 그럴 때 사용하는 방법은 아래와 같다. try: """code""" except (Exception,): pass 실질적인 동작은 모든 예외를 처리하라는 위의 코드와 같지만, IDE가 잔소리(?)를 하지 못하게 속이는 역할이다. 쓰고 보니 별 쓸모없는 내용이긴 하다..

파이썬 2022.05.31

아나콘다 환경에서 사용할 배치파일 만들기

요즘 pycharm에서 아나콘다를 사용해서 개발을 하고 있다. 깃헙에 올릴 때 패키지 리스트를 담고 있는 requirements.txt 파일을 자동 생성해주는 배치 파일을 만들었다. 코드 자체는 별 내용 없다. 가상환경 activate 시켜주고, requirements.txt 파일 만들어주고 deactivate 해주는게 전부다. 특이한 점이라면 conda 명령어 앞에 call 을 붙여줘야 한다. 그러지 않으면 명령어를 실행하고 배치 프로그램이 그대로 종료되어 버린다. @echo off call conda activate study_finance pip freeze > requirements.txt call conda deactivate 처음에는 powershell에서 아나콘다 가상환경이 activate ..

파이썬 2022.05.31