전체 글

무슨 생각을 해.. 그냥 하는거지
· Back-up/etc
https://velog.io/@haileeyu21/Session-RESTful-API-%EB%9E%80-Path-parameters-Query-string [ Session ] RESTful API 란? / Path parameters / Query string 드디어 그동안 말로만 들어오던, RESTful API 기반 웹 개발이 무엇인지 알 수 있었던 시간!!! 그래서 이게 뭐냐구요? 읽어보세요ㅎㅅㅎ velog.io 기존) 쿼리스트링 중심 페이지 뷰 중심 재사용성이 매우 떨어짐. 해당 페이지에서만 사용 가능한 컨트롤러라든가. 이런 경우 모바일이나 다른 기기에서 사용하기 현저하게 힘들어짐. 쿼리스트링은 자원의 filtering, sorting, searching에 적절하다봄. 개선하려면?) path p..
https://www.acmicpc.net/problem/20953 20953번: 고고학자 예린 예린은 고고학자이다. 예린은 강원대학교 백록관 지하에서 고인돌이 발견되었다는 소식을 듣고 누구보다 빠르게 백록관에 도착하였다. 고인돌을 본 순간 예린은 놀라 자빠질 수밖에 없었다. 고 www.acmicpc.net 쉬운 문제인데 평소에 머리를 워낙 안쓰다시피 하니 끙끙거린다.. 이 문제는 처음에 이런 식으로 풀다가 시간 초과 로 인해 통과되지 않는다. def solution(a, b): sum = 0 for i in range(a + b): for j in range (a + b): for _ in range(j): sum += 1 return sum if __name__ == '__main__': T = in..
https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 핫쒸... 솔직히 처음엔 만만하게 봤는데 어려웠다. 알고리즘은 역시 평소에 꾸준히 안해두면 머리가 굳나보다...반성 반성...^,ㅠ 이 문제는 인덱스가 0부터 시작한다는 것과 재귀함수를 잘 사용해야 한다. (내 코드는 너무 더러웠고 가장 깔끔해보이고 이해된 코드를 기준으로 작성함.) 이 문제는 0, 1, 2, 3 사분면(원래는 1부터 시작하지만 0부터라 하겠다), 각각을 네 개의 case..
우리 파이썬도 타입을 지정할 수 가 있었다네요. (3.6 버전부터 말이죠?) 참고 사실 지정이라는 말보다는 '힌트'를 줄 수 있다가 더 정확하겠다. 기존에도 docstring을 통해서 힌트를 줄 순 있었지만 이건 에디터상에서도 좀 더 확실하게 힌트를 주는 듯 하다. *에디터 환경은 파이참 다음과 같이 int타입의 파라미터를 받고, str타입으로 return을 하는 함수를 정의해주었다. 함수 안에서 int타입인 my_input을 형변환 없이 그대로 리턴하였더니 Expected type 'str', got 'int' instead :2 라는 경고표시가 보인다. 또 int타입으로 받아야 할 파라미터를 "hello world"라는 str형으로 주었더니 Expected type 'int', got 'str' in..
· Error
프록시 환경에서 https 로 된 주소의 api를 요청할 때 다음과 같은 에러를 볼 수 있다. PKIX path building failed unable to find valid certification path to requested target java.security.cert.CertificateException: No subject alternative names matching IP address found http를 요청할 땐 그냥 되던 것이 https로 요청을 하니 뭔가 인증을 해줘야한댄다… 아무튼 뭔가 까다로워졌다. 역시 보안과 네트워크 공부도 해야한다.. 공부는 끝이 없다… 찾아낸 해결방법은 두 가지가 있다. 첫번째로 내 컴퓨터에 인증서를 깔거나 두번째로 ssl인증을 무시하는 방법 1. ..
프로그램을 짰는데 이따금 생각했던 것 보다 너무나 느린 경우가 있다. 가령 1기가가 넘어가는 obj모델을 geopy.geodesic을 활용한 좌표계의 변환이 하루가 넘어가버린다든가 원인을 열심히 생각해본 결과, 이 미천한 개발자는 언어(파이썬)의 성능을 탓하게 되었는데.. 인터프리터 언어인 파이썬은 편리한만큼 느리다는 말이 만연했기 때문이다. 결론적으로 파이썬 성능을 의심하지말라.. 위의 링크의 글에 의하면 파이썬은 Numba라는 라이브러리를 통해 더 빠르게 바꿀 수 있다고 한다. 해당 라이브러리를 사용하면 C나 포트란 같은 언어보다도 빨라질 수 있다고 한다. 여지껏 느린언어라며 아무것도 모르는 바보같은 개발자(그 누구도 아닌 바로 나)에게 조롱당해온 불쌍한 파이썬이여...그 누명도 이젠 안녕(?) 하지..
파이썬에서 병렬처리를 한다는 것...파이썬에 대해 좀더 deep하게 알아야하는 과정이 필요한 것 같은데? 가령 cpu나 램은 파이썬에서 어떻게 동작하는게 효율적인가 같은. 그런데 그걸 하나하나 다 뜯고 공부한 후에 프로그램을 짤 시간이 없었다. 기한 안에 어떻게든 만들어야했기에 선택권이 없는 상황에 처했다. 그래서 어떻게..? 그냥 했다. 무작정. 되는대로. 손이가는대로. 마음가는대로. 파이썬에서 특정 라이브러리를 꼭 써야하는 일이 있었는데 이 글에서는 geopy를 예시로 글을 써보겠다. 해당 라이브러리는 좌표계 변환을 위해 사용하는 것인데, geopy의 geodesic이 정확도가 높은 대신에 속도가 엄청나게 느리다. 어느정도 정확도를 포기하고 속도를 빠르게 하고싶다면 great_circle이라는 놈을 ..
파이썬은 아주 간단한 차이일지라도 성능에는 정말 다른 결과를 가져오는 일이 종종 있다. 개발하다가 너무 느린 함수가 있었는데 어떻게 기존 코드를 최적화해서 속도를 줄일 순 없을까 보던 중... 소 뒷걸음질 치다가 쥐잡은 것 마냥 속도 개선이 되었다. 그럼 어떻게..? 파이썬에서 리스트를 사용할 때 가급적 다음과 같이 사용을 지양해야 한다. 추가받을_리스트 = 추가받을_리스트 + [추가할 요소] 백문이 불여일견이니 코드와 결과를 한번 보자 from collections import deque import time import random # 10000개짜리의 샘플 리스트를 무작위로 생성해보자 add_list = random.sample(range(100000), 100000) # case1 sample_l..
코딩애플 영상 참고 다음 영상을 참고하여 정리한 글입니다. optional chaining 연산자 ?. var use = { name : 'kim', age : 20 } console.log(user.age) // 20 console.log(user?.age) // 20 user.age와 user?.age의 차이 user가 null이거나 undefined이면 user.age가 에러를 뱉는다. user가 null이거나 undefined여도 user?.age는 undefined를 남긴다. when to use? 중첩된 object자료에서 자료를 뽑을 때 reference error 없이 안전하게 뽑을 수 있음 var user = { name: 'kim' }; console.log(user.age) // un..
· Error
glb/gltf 파일을 ktx를 통해 압축을 할 때 gltf-transform 의 cli를 통해 사용하면 편하다. 사용법은 간단한다. npm install --global @gltf-transform/cli 설치가 완료되고 cmd에서 gltf-transform --help 를 쳤을 때 다음과 같이 나온다면 정상적으로 설치된 것이다. ktx2로 압축하려면 help옵션이나 홈페이지에서도 볼 수 있다시피 etc1s나 uastc 옵션을 사용해서 압축하면 된다. 드라마틱한 용량 압축을 위해 etc1s 옵션을 선택하여 압축하였다. 내 로컬에서 잘 실행이 되기에 gltf-transform을 사용하는 프로그램을 빌드하여 이제 다른 컴퓨터에서 테스트를 했다. 결과는 안됐다. ㅠㅡㅠ 어디서 안되는가 했는데 gltf-tra..
· Error
bpy모듈을 설치하면서 하루종일 삽질한 후기… Wavefront의 .obj파일을 병합하기 위해 블렌더라는 프로그램을 사용하게 되었다. 블렌더라는 프로그램에는 파이썬 스크립트를 쓸 수 있는 기능이 있는데 여기에서 사용하는 bpy모듈(블렌더 파이썬)을 vsc에서도 가져다 쓰려면 bpy모듈을 설치(pip install bpy)해야 한다. pip install bpy만 하면 될 줄 알았는데 되지 않던가요...? 그렇다면 가장 먼저 파이썬 버젼을 한번 살펴봅시다. 가장 중요한 것은 파이썬 버젼이 3.7이어야 한다. (3.6도 안되고 3.8도 안된다.) (2023.11.22 추가 수정) 해당 글은 bpy 2.91a0 버전 기준이다. (2023.11.22일 기준 4.0.0 이 나와있으며 파이썬 3.10 사용이 가능하..
제목이 곧 내용입니다.. 그래요 저 깃허브 블로그 포기하고 다시 티스토리로 돌아오려구요.. 2021년?에 열심히 만든 깃허브 블로그 가 관리가 생각보다 까다로워 좀처럼 글이 잘 써지질 않았다. 사실 글을 몇개 쓰지도 않았지만 카테고리 한번 바꾸면 링크 주소도 바뀌면서 구글 검색이 제대로 이뤄지지 않는 문제가 너무 치명적이었음.. 뭔가 블로그 글 쓸 때마다 깃허브 잔디밭도 같이 채우고싶어서 어떻게든 깃허브 블로그를 써보려고 한건데... 깃허브 블로그가 여간 귀찮은게 아녀서 이거 쓰려다 잔디밭은 더더욱 가뭄이 되겠군 싶었다. 깃허브 블로그는 내 블로그 내에서 내 글을 따로 검색하기 위해 검색기능을 추가하는 과정도 귀찮고, 컴퓨터 한번 바꿨을 때 사용하는 노드 버젼이 달라지면서 기존의 깃허브 리파지토리의 프로..
sovelop
so's devlog