본문 바로가기

분류 전체보기

(89)
방송통신대 컴퓨터과학과 첫학기 후기 (2025-1학기) 배경공학계열 타과를 수년 전에 졸업한 백엔드 개발자 시작 동기번아웃 좀 맞고 나니 스스로가 무언가를 더 깊게 알아갈 흥미가 남아있는 사람인지 확인하고 싶었습니다. 수강 과목데이터베이스시스템꼭 들어야겠다고 생각한 과목 중 하나. 수강 후에도 같은 생각입니다.파이썬프로그래밍기초파이썬 좀 쓴 적 있어서 학점 편하게 따려고 넣은 과목이산수학수업 쭉 보고 기출, 교재, 워크북 다 풀면 준비되는 수학 과목입니다. 기억 되살리는데 공부 시간이 이틀은 필요했어요.디지털논리회로학우들과 함께하는 스터디에서 이 과목을 리딩하느라 미리 공부했는데 이게 주효했다 생각되는 과목입니다.데이터정보처리입문 (통계데이터학과 전공)졸업 학점도 채우고 적당한 성적을 날로 받아먹고 싶다면 넣으셔도 괜찮습니다. 개인적으로는 남은 게 없는 느..
K8s manifest management tool manifest는 K8s 리소스를 정의하는 파일입니다.선언형 커맨드(e.g. kubectl apply)로 K8s 리소스를 생성할 때 작성했던 명세죠.대개 yaml 예시를 보게 되지만 json 포맷도 가능합니다.controlplane에 있는 api에 리소스 생성을 요청할 때 이 내용이 들어갑니다. 환경별로 설정을 약간씩 다르게 주거나 여러 사람이 인프라에 손을 대면 곧 재사용 욕구와 탬플릿 및 버전 관리의 필요성을 느끼게 됩니다.이 필요성을 이런저런 이유로 덮어두고 살다간 오타부터 한쪽만 바꾼 설정값 등 다양한 원인을 가진 문제가 발생합니다.api 개발시 어딘가에 노출되는 부분만 약간 다르게 반환해달라 하는 요청을 받았을 때 있던 함수를 복사해놓고 살짝 바꿔 쓰다간 나중에 피를 보게 되는 것처럼요.그래서 ..
K8s service 지금의 목적은 무언가 할 수 있게끔 만들어둔 서버를 실행시키고, 이걸 안정적으로 잘 써먹는데 있습니다.kubernetes를 쓰는 관점에선 우리가 원하는 상태를 유지하기만 한다면 서버 여럿이 죽었다가 새로이 생겨나는 건 별 일이 아닙니다.서버 하나 띄우고 애지중지 입김 불어 모셔두는 방식이 아니니까 당연하지만,한 시간 전에 제 요청을 처리해준 172.18.0.5 pod는 지금 없을 수도 있죠.그럼 지금 새 요청을 하려면 저는 누굴 뭐라고 불러야 될까요? K8s에서는 pod들을 논리적으로 묶어서 명찰을 붙여줍니다.필요시 그 명찰의 이름을 불러주면 됩니다. 3조!호출되면 그 안에서 누굴 어떻게 부를지는 이 조를 결성할 때 써둔 명세에 있습니다.여기서의 그룹화와 그 명세가 K8s의 service 중 Cluste..
K8s 기초 kubernetes에서 node는 뭔가 할 수 있는 머신을 칭하는 단위입니다.cluster는 컨테이너 오케스트레이션 플랫폼으로써의 역할을 하기 위한 node 그룹으로,primary한 역할의 control plane과 1개 이상의 worker node로 구성됩니다.일반적으로 후자를 node라고 부릅니다. 구성 요소위치이름역할control planeapi다른 구성 요소들의 요청이 꽂히는 곳etcdcluster 내의 정보를 저장해둔 dbscheduler배치 안 된 pod를 적절한 node에 배치controller managercurrent state를 확인하고 desired state를 추구 (이 모든 확인 및 추구에 따른 동작은 전부 api에 요청함)nodekubeletnode 내 pod(1개 이상의 컨테이..
docker network docker network는 docker 컨테이너간 그리고 컨테이너 외부와의 통신 기능을 제공하는데 쓰입니다. docker daemon을 실행하면 3개의 기본 network와 virtual network interface인 docker0가 생성됩니다. $ docker network lsNETWORK ID NAME DRIVER SCOPE1edf6f027a5a bridge bridge local3807b42fe5f2 host host locale19d633c09eb none null local$ ifconfigdocker0: flags=4163 mtu 1500 inet 172.17.0.1 netmask 255.25..
Semantic Kernel [위민후코드 코리아 x Microsoft] AI Agent Workshop 다녀왔습니다.행사 사진은 까먹고 한국 MS의 유명한 경복궁 뷰만 봤어요. Langchain은 많이 들어보았지만 Semantic Kernel은 이번 기회로 처음 알게 되었습니다.가벼운 사전 조사 단계에선 이 글이 도움되었어요. Semantic Kernel은 AI orchestration tool 중 하나인데요, 저는 대략 AI계의 k8s 정도로 받아들였습니다.LLM과 app 사이에서 이런저런 작업을 알아서 해주는 (도식상) 햄버거의 패티죠. Langchain과 비교했을 때 제가 생각한 가장 큰 차이점은 Semantic Kernel이 framework가 아니라는 건데요,서비스에 붙인다고 생각하면 AI Agent를 만들더라도 제한적일 ..
다른 사람의 repository에 push할 때 403이 떴다면 - git push the requested url returned error: 403 배경 1. 다른 사람이 만들어둔 repository에 push를 하기 위해 권한을 요청 2. repo 소유자가 권한 주었다고 함 3. 작업하고 git push했는데 403 에러가 남 아래 방법들을 하나씩 해보고 다시 push 시도하길 반복 token 재발급, 설정 mac os 기준 참고글 remote url 재설정 git remote set-url origin https://@github.com//.git 대상 repo url 복사하고 user-name(내 GitHub username) 넣고 끝에 .git 붙이기 권한이 있긴 한건지 의심하며 권한 유무를 볼 수 있는 페이지를 찾아 헤메기 이 페이지에서 내가 관여할 수 있는 repo 목록을 확인할 수 있습니다. + 타인의 repo에서 내가 구체적으로 무슨 ..
Obsidian 초기 설정 어떤 메모 앱을 사용하든, 폴더를 트리 형태로 만들어 두고 파일을 넣다 보면 끝나지 않는 의문이 존재하죠.여러 주제에 걸친 이건 어디다 넣지? Obsidian(이하 옵시디언)은 폴더를 사용한 정리에서 벗어난 메모 앱입니다.옵시디언의 CEO인 Steph Ango가 자신의 vault(github의 repo와 유사한 개념) 구조에 대해 쓴 글에서 이 앱의 이념을 엿볼 수 있습니다.I don’t want the overhead of having to consider where something should go. 먼저 얘기하자면, 메모 이름은 좀 고민해야 됩니다. 같은 계층에선 중복 title을 사용할 수 없거든요.  요구조건: 노션보다 가볍고, 기능이 보다 적고, 한글 검색이 쓸만하고, 노트간 연결이 가능하고..
Flutter 설치 & openjdk 17 설정 Flutter 기초 강의를 수강할 때 설정한 내용 intel mac맥OS: 12.6.6(Monterey)Flutter: 2.10.5Xcode: 13.4.1 최신 버전은 Flutter 3.대에 Xcode 14.대지만, 맥OS 버전이 받쳐주지 않아 돌아가는 걸로 맞춰 설치했다. Android studio는 최신(2022.3.1.19) 버전 설치 후 android license 동의 단계에서 아래 오류가 생겼다.➜ ~ flutter doctor --android-licenses오류: 기본 클래스 com.android.sdklib.tool.sdkmanager.SdkManagerCli을(를) 로드하는 중 LinkageError가 발생했습니다. java.lang.UnsupportedClassVersionError..
postgresql - pg_dump postgresql을 사용하는 RDS 접속 참고 링크 postgre docker 컨테이너 접속할 때 $ sudo docker exec -it /bin/bash # 컨테이너 접속 $ psql -U postgres # 컨테이너 안에서 psql 접속 AWS RDS에 있는 기존 데이터를 로컬로 가져오려 한다. 가져올 것: RDS에 있는 특정 DB 통째로. 넣으려는 곳: postgresql docker 컨테이너에 있는, 장고 migrate의 결과로 스키마는 있지만 데이터는 없는 DB rds에서 로컬로 특정 DB의 데이터 가져오기. 로컬에서 치는 커맨드이다. 참고 링크 RDS와 로컬의 postgresql 버전이 같지 않으면 에러가 난다. $ pg_dump -h -U -f 데이터를 넣을 DB가 스키마가 이미 있는 D..