![[MySQL] 문자열 데이터를 저장하는 방법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbCpc8g%2FbtsMUy3DgCA%2FAAAAAAAAAAAAAAAAAAAAACIGA_KOHsATMR7mUu9eR6nY4DBYbWnBxbYR8VqjUWPw%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DmuxGVol33g1LQbIxVSIrJPF1hz4%253D)
개발을 하다 보면 가장 많이 다루게 되는 데이터는 역시 문자열 데이터입니다.백엔드 개발자로서 저는 평소 "문자열 데이터를 어떻게 하면 효율적으로 저장하고 불러올 수 있을까?"라는 고민을 가장 많이 하는 것 같습니다.특히 데이터 저장을 위해서는 반드시 테이블이 필요한데요. 문자열 데이터를 저장하기 위한 테이블을 설계하다 보면 자연스럽게 한 가지 고민에 부딪히게 됩니다.바로, 문자열 데이터를 저장할 때 어떤 컬럼 타입을 선택해야 할지에 대한 고민이죠. (CHAR와 VARCHAR, 과연 무엇을 선택해야 할까요?) CHAR VS VARCHAR CHAR 타입과 VARCHAR 타입은 모두 문자열을 저장하기 위해 고안된 컬럼 타입이에요.두 타입 모두 다양한 문자 인코딩 방식(ASCII, UTF-8 등)을 지원하며, ..

개발을 하다보면 데이터베이스 서버에서 트랜잭션이라는 개념을 쉽게 마주하게 됩니다.트랜잭션은 개발을 편하게 해주는 기능이지만, 이를 주의 없이 사용했다간 더 큰 문제를 마주하게 되기 마련이지요.오늘은 그런 불상사를 미리 예방하는 차원에서 데이터베이스의 트랜잭션에 대해 알아보는 시간을 갖겠습니다! 트랜잭션은 무엇인가요?트랜잭션은 데이터베이스에서 수행되는 작업의 논리적 단위로, 하나 이상의 데이터베이스 연산(읽기, 쓰기, 수정, 삭제 등)을 포함합니다.트랜잭션을 사용하여서 데이터베이스의 일관성을 유지하고, 동시성 제어를 통해 여러 사용자가 동시에 데이터에 접근하더라도 데이터의 무결성을 보장할 수 있습니다. 예시를 들어볼까요? 은행에서 계좌 A에서 계좌 B로 돈을 이체하는 과정에서 데이터베이스에는 다음과 같은 ..

데이터 저장소의 개념은 계속해서 발전해오고 있습니다. 특히, 빅데이터의 발전에 따라 용도와 목적에 따른 데이터 저장소의 개념이 계속해서 새롭게 생겨나고 있는데요 저같이 백엔드 공부를 하고 있는 분들은 데이터베이스의 개념에만 익숙하실텐데요... (아니면 말구) 오늘은 대표적인 데이터 플랫폼인 데이터베이스 / 데이터 웨어하우스 / 데이터레이크에 대해서 알아보도록 하겠습니다. 데이터베이스 먼저, 데이터베이스란 사용자에게 트랜잭션 데이터를 저장, 회수할 수 있도록 하는 기술입니다. 트랜잭션이란 데이터를 안전하게 처리하는 기술 입니다. 간단한 예시를 통해 트랜잭션에 대해 이해해볼까요? 먼저 고객 A가 고객 B의 계좌로 100만원을 이체하려고 합니다. 이 과정에서 데이터베이스는 아래와 같은 트랜잭션이 실행됩니다. ..

안녕하세요, 지난번 발표에 이어서 또 다시 기술 세미나를 맡아 시작하게 되었습니다. 2024.02.02 - [Language/Java ☕️] - 자바의 가비지 컬렉션 자바의 가비지 컬렉션 안녕하세요, 이번에 Kernel 360 과정에 참여하게 되면서 기술 세미나를 맡아 준비하게 되었는데요. 거의 대부분의 팀들이 Java 와 Spring Framework 환경으로 프로젝트를 진행하고 있었습니다 (역시,, 자 stonehee99.tistory.com 특별히 지난번 가비지 컬렉션 발표에 이어서 또 다른 컬렉션에 대해 발표를 해보면 어떨까? 하는 생각에 (농담입니다) 객체지향에서 크루분들이 어려워하는 개념 중 하나인 일급 컬렉션에 대해 발표를 진행하기로 하였답니다. 일급 컬렉션(first-class-collec..

기존의 최대 공약수를 구하는 방법 public int getGreatestCommonDivisor(int num1, int num2) { int little = num1 b)에 대하여, a를 b로 나눈 나머지를 r이라고 하겠습니다. a = bq + r 로 나타낼 수 있습니다. (여기서 q는 몫을 나타냅니다) a와 b의 공약수..

오늘은 비동기 프로그래밍에 관해 함께 알아보는 시간을 갖도록 하겠습니다. 비동기 프로그래밍에 대해 잘 알기 위해서는 동기와 비동기의 차이를 알아야 합니다. 이 둘의 차이는 무엇일까요? 동기 vs 비동기 동기(Synchronous) 와 비동기(Asynchronous) 는 데이터 처리와 작업 실행 방식을 나타내는 용어입니다. 동기 먼저 동기 방식은 작업들이 순차적으로 진행됩니다. 즉, 한 작업이 완료되기 전에는 다음 작업이 시작되지 않습니다. 이 방식은 작업의 순서가 중요할 때 유용한 방식입니다. 예를 들어, 어떤 데이터를 먼저 처리하고 그 결과를 이용해서 다음 작업을 수행할 경우에 적합하겠죠? 하지만 이렇게 동기적으로 작업이 처리될 경우 전체 작업의 효율성이 떨어질 수 있습니다. 하나의 작업이 지연되면 전..