서론정말 너무 화나서 찾아보고자 블로그를 쓴다 이전에도 같은 문제를 겪은 기억이 있고 해결한 기억이 있었다.데이터베이스에 어떤 값을 넣을 때 timezone이 맞지 않아서 발생한 문제였고, application.yml에 db url을 지정할 때 timezone을 지정해줌으로써 해결했다. spring: r2dbc: url: r2dbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul이번에도 습관적으로 timezone을 지정해줬고, 혹시모를 오류를 대비해 인코딩도 지정해줬다. 하지만 또 발생해버렸다.. 로그를 보아하니 인코딩도 박살나있고, ..
전체 글
공부중인 학생입니다! 글에서 틀린 곳이 있으면 지적 부탁드립니다 블로그 이사 https://velog.io/@joohr1234이전까지는 아무 생각없이 MySQL 스키마, 테이블을 만들 때 utf8 charset과 utf8_bin collation으로 지정하고 사용해왔었다. 그런데 팀플을 하고 프로그래밍 교육을 들으면서 팀원들과 사람들이 나와는 다른 문자셋을 사용하는 걸 발견했다.... 찾아보니 utf8mb4 라는 문자셋과 utf8mb4_unicode_ci, utf8_general_ci, utf8_bin 등 다양한 collation이 있다는 걸 알게되었고, 원하는 서비스를 만들기 위해서는 이런 문자셋도 고려해야한다는 걸 알게되었다. (ex. 이모지를 제공하는 편지서비스 등) 이전에는 운 좋게 문자셋 관련한 오류를 발견하지 못했지만, 내가 사용하던 문자셋을 그대로 사용하면 어떤 오류가 터질 지 무서워졌다. 그래서 이번 기회에 제대..
이진탐색이 너무 약해서 뿌수기 시리즈를 해보려고한다 10815 숫자 카드 - 실버5 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 정말 이진탐색만 하면 되는 문제다 class Main { public static void main(String[] args) throws IOException { StringBuilder sb = new StringBuilder(); BufferedReader br = new Buf..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
친구의 질문 덕분에 새로운 고민거리가 생겼다. 복잡한 쿼리문을 만들더라도 디비에서 최대한 데이터를 가공해서 가져오는 게 좋을까, 아니면 간단한 쿼리문을 날려서(필요하다면 여러개를) 서버에서 데이터를 처리하는게 좋을까? 구글링을 해보니 많은 의견들이 있었는데, 재미있는 내용이 많아서 정리해보려고 한다. 자료1: 복잡한 비즈니스 로직은 서비스 레이어에 넣자 https://okky.kr/questions/676406 OKKY - 쿼리에서 연산해야할까요 자바에서 연산해야할까요 안녕하세요 초급개발자입니다요즘들어 계속 궁금한게 있는데단순계산할때에는 매퍼에서 연산해서 가져오는게 좋을까요 자바단에서 연산을 하는게 좋을까요...만약에 a, b, c를 뿌려야할 때a는 okky.kr 해당 댓글을 참고했다. 입장: 복잡한 비..
이번에는 JavaScript의 this에 대해 알아보려고 한다. javascript의 this는 다른 언어들과 조금 다르게 동작한다. Javascript의 this는 대부분의 경우 함수를 호출한 방법에 의해 결정된다. 그렇기 때문에 함수를 호출할 때마다 this가 가리키는 값이 다를 수 있고, 이는 혼동을 줄 수 있다. 이를 위해 ES5는 bind()메서드를 도입하여 함수를 어떻게 호출했는지에 상관없이 this값을 설정할 수 있도록 하였고 ES2015는 스스로의 this바인딩을 제공하지 않는 화살표 함수를 추가하였다. (화살표 함수는 렉시컬 컨텍스트 안의 this값을 유지한다) 이번에는 this의 동작방식의 예시들을 알아보고, 어떻게 사용해야하는지 알아보겠다! * 참고로 이 게시글의 예시들은 비엄격모드에..
자바스크립트에서 일정 시간 이후에 어떤 메서드가 호출되게 하고싶다면 setTimeout()과 setInterval() 함수를 사용할 수 있다. 둘의 사용법을 요약하면, setTimeout()은 지정된 함수를 한 번만 호출할 때 사용하고, setInterval()은 지정된 함수를 반복적으로 호출할 때 사용하는 함수이다. setTimeout() var timeoutId = setTimeout(functionRef, delay]); var timeoutId = setTimeout(functionRef, delay, param1, param2, ...); var timeoutId = setTimeout(code, delay, param1, param2, ...); //권장 x 지정된 시간이 만료된 후 함수나 코..
평생 못 갈 줄 알았던 플레가 되었다! 기념으로 후기 글을 써보려고 한다. 참고로 여기서 말하는 공부방법은 개인적으로 도움이 됐던 공부방법을 공유하는 거라 이 방법이 다른사람에게는 정답이 아닐 수 있다. 참고용으로만 읽고 자신과 잘 맞는 공부방법을 찾는 게 좋을 것 같다. 글쓴이는 알고리즘 관련 강의를 하나도 사지 않았고, 알고리즘 유형들은 대학교 수업에서 많이 접해서 어느정도 아는 수준이었다.(돌아가는 로직만 알고 코드는 짤 줄 몰랐다) 공부기간(2023.7 ~ 2024.2) 브론즈 문제를 찔끔찔끔 풀다가 작년(2023) 7월쯤부터 본격적으로 공부를 시작했다. 이후 개발동아리를 하면서 조금 손을 놓고있다가 9월 중반부터 싸피입과 전까지 계속 알고리즘을 공부했다. 싸피 입과 후에는 알고리즘 스터디를 하면..
최근에 MST를 공부해서 MST 뿌수기 시리즈를 해보려고 한다. 6497 전력난 - 골드4 https://www.acmicpc.net/problem/6497 6497번: 전력난 성진이는 한 도시의 시장인데 거지라서 전력난에 끙끙댄다. 그래서 모든 길마다 원래 켜져 있던 가로등 중 일부를 소등하기로 하였다. 길의 가로등을 켜 두면 하루에 길의 미터 수만큼 돈이 들 www.acmicpc.net 전체 간선의 길이가 최소가 되어야한다 최소 스패닝 트리를 생각할 수 있음 그냥 최소스패닝 트리를 잘 만들면 되겠다. 길의 수가 적다고 정해져있지 않으니 크루스칼, 프림 아무거나 해도 될 것 같다. Prim 알고리즘 풀이 class Node implements Comparable { int end; int distanc..