본문 바로가기

분류 전체보기

(124)
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead. kubernetes를 사용할 때 pod에 직접 접근을 하기 위해 아래와 같은 명령어를 사용했다. kubectl exec -it pod/{pod name} /bin/bash 하지만 kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead. 이런 에러가 발생했다. 해결방안 kubectl exec -it pod/{pod name} -- bash -- bash 사이에 띄어쓰기 있으니 조심!
[Kubernetes error]: exec usr bin java exec format error mac m1에서 back-end application 개발 후, image를 만들어 docker hub에 push 한 경우 linux에서 그 image를 실행시키려면 "exec usr bin java exec format error" 에러가 발생한다. 이를 해결하기 위해서는 buildx 라는 빌드 도구를 이용해 빌드를 진행한다. buildx는 docker 19.03 이후 버전부터 사용이 가능하고 docker에 자동으로 포함된 플러그인이다. 해결방안 먼저 빌드 시, platfrom을 지정해준다. ※ docker buildx ls를 사용하면 사용가능한 platfrom 종류가 나온다. (알아서 사용할 것으로 바꾸면 됨) "--platform=linux/amd64,linux/arm64"처럼 여러 platfrom..
[데이터 중심 애플리케이션 설계] 3장 3. OLTP와 OLAP, 데이터 웨어하우스, 정리 인메모리 데이터베이스 디스크는 전원이 꺼져도 데이터가 손실되지 않으며 램보다 가격이 저렴했다. 하지만 램이 점점 저렴해지며 데이터셋 대부분을 메모리에 보관하는 방식이 생겨났다. 혹은 여러 장비 간 분산해서 보관할 수 있는데 이런 이유로 인메모리 데이터베이스가 개발됐다. 인메모리 데이터베이스는 지속성을 목표로 하는데, 이를 위한 방법은 특수 하드웨어 사용 디스크에 변경 사항의 로그 기록 or 디스크에 주기적인 스냅숏 기록 다른 장비에 인메모리 상태 복제 트랜잭션 처리나 분석? OLTP(온라인 트랜잭션 처리) 보통 애플리케이션은 색인을 사용해 일부 키에 대한 적은 수의 레코드를 찾는다. 레코드는 사용자의 입력을 기반으로 삽입되거나 갱신된다. (사용자 대상) OLAP(온라인 분석 처리) 데이터베이스를 데이터 ..
[데이터 중심 애플리케이션 설계] 3장 2. LSM 트리와 B 트리 해시 색인의 한계를 없앤 색인 구조를 살펴보자. SS 테이블과 LSM 트리 그림 3-3에서 로그 구조화 저장소 세그먼트는 키-값 쌍의 연속이다. 여기에 일련의 키-값 쌍을 키로 정렬해보자. 이런 형식을 정렬된 문자열 테이블 또는 SS테이블 이라고 부른다. 보다 나은 의 장점 세그먼트가 정렬되어 있기 때문에 병합 정렬이 가능하다. 특정 키를 찾기 위해서 메모리에 모든 키의 색인을 유지할 필요가 없다. 이미 정렬이 되어있기 때문에 키 B의 오프셋을 몰라도 A와 C의 오프셋 위치만 알면 그 사이에서 B를 찾으면 된다. 읽기 요청은 해당 레코드들을 블록으로 압축할 수 있다. 디스크 공간을 절약하고 I/O대역폭 사용도 줄일 수 있다. 디스크 상에 정렬된 구조를 유지하는 일은 가능하지만, 메모리에 유지하는 편이 훨..
[데이터 중심 애플리케이션 설계] 3장 1. 색인 3장은 데이터를 저장하는 방법과 데이터를 요청했을 때 다시 찾을 수 있는 방법을 설명한다. 가장 간단한 데이터베이스 구조 bash 함수 2개를 만들어 구현한 key-value 저장소. #!/bin/bash db_set(){ echo "$1, $2" >> database } db_get(){ grep "^$1, " database | sed -e "s/^$1,//" | tail -n 1 } “db_set {key} {value}” 호출 시, key와 value가 어느 것이든 저장할 수 있다. (value는 JSON도 가능) “db_get {key}” 호출 시, 해당 key의 가장 최근 value를 찾아 반환해줍니다. 로그 로그는 뒤쪽에 추가만 가능한 추가 전용(append-only) 데이터 파일이다. db..
[네이버 클라우드 (API 마켓플레이스) appetizer 서포터즈] 성과공유회 후기 안녕하세요~! 오늘이 네이버 클라우드 API 마켓플레이스의 마지막 포스팅이 되겠습니다!! '오늘의 빵' 프로젝트를 짧게 돌이켜보고 성과공유회 후기를 풀어보겠습니다. 먼저 오늘의 빵은 저에게 새로운 도전 같았습니다. 안 써보던 기술을 써봤고, 못 해봤던 아이디어를 실현해봤죠. 재정적인 지원 덕분에 쿠버네티스도 사용해보고 필요하면 서버도 마음대로 만들 수 있었어요. 기술로는 GraphQL을 처음 사용해보며 이런저런 난관이 있었지만, 해결해내며 뿌듯함도 느꼈고요 ㅎㅎ 아! 그리고 GraphQL을 사용하면서 API의 설계 중요성을 알았습니다. API 설계를 미리 하면 어느 기술을 선택할지 정할 수 있을 것 같다고 느꼈어요. 지금은 체험해보고자 미리 정하고 시작했지만 다음번엔 기술들의 장단점을 제대로 비교해 기술..
[네이버 클라우드 (API 마켓플레이스) APPETIZER 서포터즈] 개발 기록 5차 이번 게시물이 마지막 개발 기록이 되겠네요~! 그간 아주 큰일이 있었는데요,, 무려 제가 코로나19에 걸렸습니다... (아니 이걸 누가 이제 걸려!?) 요즘 제 주변에 많은 분들이 갑자기 많이 걸리더라구요. 다들 정말 조심하세요..!!! 마스크 잘 끼기... 방에 박혀있지만 사실 원래 집순이라 위화감 전혀 없고,,, 방에 있어서 오히려 행복하고... 일주일 정도는 별거 아니지...싶은..ㅎ 다시 본론으로 돌아와, 오늘 소개드릴 내용은 오늘의 빵에서 Steppay의 어떤 기능을 연동해서 사용했고 어디까지 개발을 했는지 소개하려구 해요! 그리고 저희의 Vlog 기획안과 중간 프로토타입에 관한 이야기도 해보려고 합니다 ㅎㅎ 예전에 zoom으로 진행했던 개발자 미팅에서 steppay에서 제공해주지 않는 "가게"..
[네이버 클라우드 (API 마켓플레이스) APPETIZER 서포터즈] 개발 기록 4차 오늘도 힘내서 블로그 쓰는 시간~! 시험기간이 이제야 끝나서 개발을 많이 진행하진 못한 상태입니다ㅠㅜ... 그리고 저희 팀에서 한명이 탈주하셨기 때문에.... 아주 난감한 상황입니다 (웃는게 웃는게 아니야..) 팀워크라는 게 참 어렵네요.. 많은 생각을 하게 되었습니다. 여태 많은 프로젝트를 진행하면서 팀 내에서 탈주하시는 분들이 많았어요. 그리고 저는 이번 탈주로 이 문제가 왜 항상 반복되는지 고민하며, 무엇이 문제인지 생각해보는 시간을 가졌습니다. 점점 팀워크에 대해 고민을 많이 하고 개선해 나가는 중인데 다음번엔 정말 후회 없이 좋은 팀워크를 꾸려나가게 되었으면 좋겠습니다 : ) 그래서 두 명이 하게 된 우리 프로젝트 오늘의 빵!!!! 잘 되어가도록 해보겠습니닷!!!! 가즈앙~! 오늘은 지난번 블로..