전체 글 썸네일형 리스트형 로드밸런싱 , 다중서버 oauth 401 error 아 정말 삽질을 많이했던 것 같다 순수 시간으로만 거의 1~2일 걸린 것 같다. 왜 안되는거지 왜 안되는거지 고민을 많이했었는데, 결국에는 내가 이겼다. ㅋㅋ 현재 현재 다음과 같은 구조로 다중서버에 로드밸런싱 라운드로빈 방식으로 서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식으로 라우팅해주고있다. 이때 , oauth2 로그인을 하는데 있어서 오류가 발생했다. 왜? 오류가 발생했을까 ? 처음 카카오 로그인 화면이 뜨고 로그인을 하게됐을 때 401 unauthrization error 가 떳고 처음 카카오 인증서버에 인증에 성공하고 redirect하는 시점에 로드밸런싱 주소를 가르키고 있는데 이때 라운드로빈 방식이므로 처음 요청했던 서버와는 다른 서버에 다시 redirect가 되어 쿠키 및 세션이 제.. 더보기 clean code 3장 요약 3장 함수 함수를 만드는 첫번 째 규칙은 "작게" 다 . 함수를 만드는 둘째 규칙은 "더 작게"다. service 로직에서이나 보통 도메인주도설계를하시는분은 Entity안에서 로직을 작성하시곤 하는데 함수가 가지고있는 의미있는 이름을 갖고 함수를 자잘자잘하게 짜르고 명확한 이름을 가지고 작성하는 것이 중요한 것 같다. 블록과 들여쓰기 if 문/else 문/while 문 등에 들어가는 블록은 한 줄이어야 한다. => 중첩 구조가 생길만큼 함수가 커져서는 안 된다 => 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안 된다. 한 가지만 해라! 함수는 한 가지를 해야한다. 그 한 가지를 잘 해야 한다. 그 한가지만을 해야한다. 지정된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행해야함 의미 있는 이.. 더보기 clean code 2장 요약 sw마에스트로에서 여러 사람들이 많이 주문한 책이고 개발자는 거의 필수코스라고봐도 무방할 정도로 사람들이 많이 읽는다. 좀 오래 걸리긴 했지만 읽은 것을 바탕으로 내용을 정리해보려고한다. 2장 의미있는 이름 의도를 분명히밝혀라 "의도가 분명하게 이름을 지으라" 이 부분은 정말 공감되는 부분이다 좋은이름으로 함수명 클래스명을 지으려면 시간이 걸리지만 좋은이름으로 절약하는 시간이 더 많아질 것이다. 변수나 함수 그리고 클래스 이름은 존재 이유, 수행 기능과 사용 방법과 같은 굶직한 질문에 모두 답해야 한다. 의미 있게 구분하라 - 읽는 사람이 차이를 알도록 이름을 지어라 - 컴파일러를 통과할지라도 연속된 숫자를 덧붙이거나 불용어를 추가하는 방식은 적절하지 못하다. 이름이 달라야한다면 의미도 달라져야한다. -.. 더보기 kafka 실행시켜보기 (feat. docker) 공식 문서에 나와있는 docker-compose.yml 내용을 그대로 복사붙여넣기하고 추가로 내가 필요한 부분은 더 추가해서 docker-network를 구성하였다 . 내용은 kafka와 zookeeper를 실행시키고 zookeeper를 그대로 연결해서 띄우는거다. 실제로 로컬에서 일일히 띄우기 귀찮았는데 docker를 사용하면 파일 하나만 실행시키면 자동으로 되는게 너무 편하다. version: '3' services: zookeeper: image: confluentinc/cp-zookeeper:7.0.1 container_name: zookeeper ports: - "2181:2181" networks: - kafka-network # Kafka와 관련된 컨테이너와 같은 네트워크 그룹에 속하도록 설.. 더보기 MSA에서 데이터베이스 값 동기화 및 kafka connect docker compose 구성 일단 각종 용어 정리부터 해보겠습니다. Connector (Debezium) 원본 데이터 베이스에 리플리케이션 클라이언트로 붙어서 사용 데이터 변경을 캡처하고, 변경 메시지를 카프카에 프로듀싱 하는 역할 MS-SQL, MySQL, Postgre... 등 여러 데이터베이스와 연동 가능 직렬화, 역직렬화 규격을 사용 (redis 와 똑같음) ZooKeeper 분산 코디네이션 시스템으로, 카프카 클러스터의 정보를 관리, 리더 선출, 잠금, 동기화를 위해 사용 Connector 카프카 토픽에서 읽어낸 메시지를 처리하여 읽어내는 애플리케이션 주로 데이터를 변형하거나 가공하여 대상 데이터베이스에 적용하는 로직을 수행 Source Connector vs Sink Connector Source Connector: da.. 더보기 채팅서비스 sql vs nosql mongodb ? dynamodb ? 채팅서비스를 개발하면서 데이터베이스에 채팅내용을 저장할 일이 생겼다. 주워들은 건 많아서 채팅 서비스를 많은 기업에서 nosql을 사용해서 저장하는 걸 알고 있었지만 왜? 사용하는지 알지 못하기에 한번 정리하고 가면 좋을 것 같아서 정리해봅니다. 또한 nosql 의 대표적인 mongodb와 aws 에서 지원하는 nosql dynamodb 의 차이점을 정리하고 갑니다. 1. 채팅서비스 왜 noSql을 사용하는거야 ? RDBMS에 채팅 내용을 담으면 I/O비용이 크다. I/O 비용이 크다는 말은 데이터를 넣고 빼는데 리소스(cpu, disk, memory)를 사용하는 량이 크다.그에 비해 NoSQL은 상대적으로 적습니다.\ 확정성에 용의하다. 채팅서비는 대규모 동시 사용자와 데이터를 다루어야 한다. nosq.. 더보기 redis 서버에 외부서버가 접근하는 방법 docker-compose.yml db-mysql: restart: always image: mysql:8.0 environment: MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_ROOT_HOST: ${MYSQL_ROOT_HOST} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} ports: - 3306:3306 command: - "mysqld" - "--character-set-server=utf8mb4" - "--collation-server=utf8mb4_unicode_ci" volumes: - ./db:/var/lib/mysql redis: hostname: ${REDIS_HOSTNAME} container_name: redis image.. 더보기 aws codedeploy 블루/그린배포 중 오류 blue / green 배포 ci/cd 도중 발생한 에러 모든 설정 다 했는데 자꾸 실패.. 왜 자꾸 실패하는지 모르겠습니다. 심지어 UnknownError라고 합니다ㅠㅠ EC2 인스턴스 재부팅, codedeploy-agent 재설치도 해봤지만 같은 문제가 계속 발생했습니다.. EC2에 설치한 codedeploy-agent codedeploy-agent 서비스의 상태를 확인해봤습니다. 설치 후 실행 확인 시에는 정상이라 문제가 없다 생각하고 그냥 넘어갔었습니다.. 혹시 몰라 로그 파일(/var/log/aws/codedeploy-agent/codedeploy-agent.log)을 봤습니다. 그랬더니.. 에러가 계속 발생하고 있었습니다!!!! 그래도 일단 원인은 찾았어요. :) 현재 IAM 정책 EC2의 I.. 더보기 이전 1 ··· 4 5 6 7 8 9 10 ··· 35 다음