분류 전체보기

    RDS :: Too many connections 오류 해결 (mariaDB)

    RDS :: Too many connections 오류 해결 (mariaDB)

    문제상황 스프링 서버를 도커 컨테이너로 실행했는데 갑자기 Too many connections 에러 발생..! DB 는 AWS RDS 로 mariadb (t3.micro) 를 사용 중이다. 세팅 확인 현재 연결되어 있는 thread 수와 지정된 wait timeout 값, max connections 값을 확인해보자. 연결된 thread 수 확인 SHOW STATUS LIKE ‘threads_connected’; 현재 wait timeout 값 확인 SHOW VARIABLES LIKE ‘wait_timeout’; 현재 max connections 값 확인 SHOW VARIABLES LIKE ‘max_connections’; 확인해보니 max connections 값이 30 으로 되어 있는데, 연결된 th..

    RDS :: Incorrect string value: '\xEC\x9D\xB4\xEC\xA3\xBC...' for column 오류 해결 (mariaDB)

    RDS :: Incorrect string value: '\xEC\x9D\xB4\xEC\xA3\xBC...' for column 오류 해결 (mariaDB)

    문제상황 카카오 로그인 이후 받아온 nickname 값을 DB 에 저장하려고 했는데 Incorrect string value 에러가 떴다. 검색해보니 클라이언트에서 보낸 데이터를 DB 에 넣으려 할 때, 그 데이터가 한글이면 오류인 것으로 문제를 파악할 수 있었다 ! DB 의 character set 을 utf-8 로 설정하면 바로 해결되는 문제. 해결방안 RDS 의 파라미터 그룹을 수정해준다. 만약 RDS에 default 파라미터 그룹이 적용되어 있다면 파라미터 그룹을 새로 만들면 된다. 파라미터 그룹에서 character 를 검색해보자. 검색해서 나오는 character_set 들의 값을 전부 utf8mb4 로 바꿔주자. utf8 로만 변경해도 되지만, 이모지와 같은 값들을 DB 에 넣고 싶다면 mb..

    알고리즘 스터디 :: 입출력 (Java, Python)

    알고리즘 스터디 :: 입출력 (Java, Python)

    백준 기준으로 입출력을 연습해볼 수 있는 아주 간단한 문제들을 모아봤다. 프로그래머스 같은 플랫폼을 이용할 때는 함수 인자로 던져주기 때문에 입출력이 필요없지만, 백준에서는 입출력 함수를 뭐 쓰냐에 따라 실행 시간이 많이 달라지기도 한다 🙋‍♂️ 문제 리스트 두 수 A,B를 입력받고 A+B를 출력하는 문제들 https://www.acmicpc.net/problem/1000 1000번: A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net https://www.acmicpc.net/problem/2558 2558번: A+B - 2 첫째 줄에 A, 둘째 줄에 B가 주어진다. (0 < A, B < 10) www.acmicpc.net https://ww..

    백준 :: 10951번 A+B-4 (Java, Python)

    백준 :: 10951번 A+B-4 (Java, Python)

    https://www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 브론즈 5에 해당하는 쉬운 문제이지만, 테스트의 종료 조건을 처리하지 못해서 틀린 사람들이 많은 것 같다. 문제를 살펴보자. 살펴볼 포인트는 두 가지이다. 공백을 기준으로 두 정수가 입력됨 더 이상 읽을 데이터가 없을 때 입력이 종료 여기서 주의할 점은 읽을 데이터가 없다는 것 ! 읽을 수 있는 데이터가 없다는 건 EOF 를 의미한다. EOF 는 End Of File. 데이터가 더 이상 존재하지 않는 파일의 끝을 의미한다. 일단 입력 방식을 여러 가지로 해서 풀어보자. 사실 방금 자바 입력 시간 줄이는 법..

    알고리즘 스터디 :: 알고리즘이란 ?

    알고리즘 스터디 :: 알고리즘이란 ?

    Algorithm 이란 어떤 문제를 해결하기 위한 여러 동작들의 모임 이다. 간단하게 이렇게 생각해보자. 학교에서 집을 갈 때 버스로 갈 수도 있고, 택시로 갈 수도 있는 상황이다. 이런 상황에서 나라면 아마 버스를 타고 갈 것이다. 왜냐면 싸니까 🫠 학교에서 집으로 가는 문제를 버스를 타는 방식으로 해결 하는 것 ! 이게 바로 알고리즘 이다. 항상 어떤 문제를 해결하는 방법이 똑같은 건 아니다. 만약 치킨을 시켰는데 벌써 도착해버렸다면? 택시를 타고 빨리 집에 가는 방법을 선택할 것이다. 이런 식으로 어떤 조건이 바뀌게 되면 문제를 해결하는 방식이 달라질 수도 있다. 공부방법 먼저 알고리즘이나 문제를 푸는 방법을 이해하기 완벽하지 않거나 일부만 이해해도 성공~ 관련 문제를 풀어보기 한 문제는 길어도 1..

    우리팀의 코딩 컨벤션 정하기

    우리팀의 코딩 컨벤션 정하기

    왜 필요한가? 팀원들과, 특히 백엔드끼리 협업을 하면서 설계를 끝내고 구현으로 들어가면서 가장 먼저 맞닥들인 문제는 “컨벤션” 이었습니다. 같은 프로젝트의 코드를 건드리는 팀원의 입장에서 다른 사람이 쓴 코드를 이해하는 데에 시간이 걸리거나 하다못해 DTO 의 클래스 이름부터가 뭐하는 DTO 인지 알기 어렵다면, 같이 코드를 작성하는 데에 불편함이 있습니다. 그래서 프로젝트를 같이 하는 팀원과 컨벤션을 정하고 코드 작성을 시작하기로 했습니다. 코드 스타일에 표준이라는 것은 없지만, 팀 내부에서 같은 코드 스타일을 유지하는 것이 작업 효율을 높일 것이라고 생각했습니다. 유지보수의 관점에서도 그렇고요 ! 제가 코드를 계속 작성하고 고쳐나갈 수 있다면 좋겠지만, 누군가 새로운 사람이 투입됐을 때 어떤 코드 규..

    TDD :: 화폐 예제 (1/2)

    TDD :: 화폐 예제 (1/2)

    리듬을 보자. 이 책의 1부에서는 테스트에 의해 주도되는 전형적인 모델 코드를 개발한다. 테스트 주도 개발의 리듬을 보자. 재빨리 테스트 하나 추가 모든 테스트를 실행하고 새로 추가한 것이 실패하는지 확인 코드 수정 모든 테스트를 실행하고 전부 성공하는지 확인 리팩토링을 통해 중복 제거 다중 통화를 지원하는 Money 객체 이런 보고서가 있다고 하자. 종목 주 가격 합계 IBM 1000 25 25000 GE 400 100 40000 합계 65000 다중 통화를 지원하는 보고서를 만들려면 통화 단위를 추가해야 한다. 종목 주 가격 합계 IBM 1000 25USD 25000USD Novartis 400 150CHF 60000CHF 합계 65000USD 또 환율도 명시해줘야 한다. 기준 변환 환율 CHF US..

    TDD :: TDD 를 시작하며

    TDD :: TDD 를 시작하며

    Clean code that works. (작동하는 깔끔한 코드) - Ron Jeffries 테스트 주도 개발의 궁극적인 목표. 개요 많은 요인들은 우리를 깔끔한 코드로부터 멀어지게 만들고 작동하는 코드조차 만들기 어렵게 하는 현실이다. 이런 두려움에 빠지지 말고 자동화된 테스트로 개발을 이끌어가자. 이런 개발 방식이 바로 테스트 주도 개발 ! 테스트 주도 개발은 오직 자동화된 테스트가 실패할 경우에만 새로운 코드를 작성한다. 중복을 제거한다. 이 두 가지 규칙만을 따른다. 위 두 가지 규칙에 의해 프로그래밍 순서는 다음과 같이 결정된다. 빨강 - 실패하는 작은 테스트를 작성한다. 컴파일도 안 될수도 .. 초록 - 빨리 테스트가 통과하게끔 만든다. 무슨 수를 써서라도 ! 리팩토링 - 일단 테스트를 통과시..