본문 바로가기
개발/Java

[Java&Javascript] 문자를 byte 로 계산하는 함수는 이렇게 만들어요.

by 쓸있쏜 2024. 11. 27.

Java와 JavaScript로 문자 바이트 계산하기: 귀여운 함수의 세계 탐험!

안녕, 여러분! 😊 오늘은 우리 프로그래머들이 자주 맞닥뜨리는 재미난 주제를 가져왔어요. 바로바로, 문자의 바이트 계산! "아니, 바이트를 계산해야 할 일이 정말 있나요?"라고 묻는다면, 답은 "그럼요!"예요. 데이터 전송, 파일 크기 관리, 심지어 데이터베이스 칼럼 제한 처리까지. 바이트 계산은 생각보다 중요한 친구랍니다. 자, 그럼 Java와 JavaScript로 이 문제를 어떻게 다룰 수 있는지 탐험해볼까요?


Java: 꼬꼬마 메모리 계산 천재! 🐥

Java는 정말 꼼꼼한 친구예요. 특히나 우리가 바이트를 계산하려고 할 때, "어? 이건 몇 바이트짜리일까?" 하면서 다 챙겨봐요. 여기 작은 예제를 준비했어요.

import java.nio.charset.StandardCharsets;

public class ByteCalculator {
    public static void main(String[] args) {
        String text = "안녕하세요, 세상!"; // 여기 한글도 들어 있어요.
        int byteCount = text.getBytes(StandardCharsets.UTF_8).length;
        System.out.println("UTF-8 기준으로 '" + text + "'는 " + byteCount + " 바이트입니다.");
    }
}

설명:

  1. getBytes(StandardCharsets.UTF_8)은 문자열을 UTF-8로 변환해요.
  2. 변환된 바이트 배열의 길이를 가져오면 총 바이트 수가 나옵니다!

결과는? "안녕하세요, 세상!"은 21바이트짜리 친구랍니다. 한글은 한 글자당 3바이트씩 쓰니까 이렇게 되는 거예요. 신기하죠?


JavaScript: 자유로운 영혼의 바이트 계산법 🦋

JavaScript는 좀 더 자유분방해요. "어? 바이트 계산? 그거 그냥 하면 되는 거 아니야?"라는 느낌으로 접근한답니다. 하지만! 약간의 꼼수가 필요할 때도 있어요. 예제 보실래요?

function calculateBytes(text) {
    const encoder = new TextEncoder();
    const byteArray = encoder.encode(text);
    return byteArray.length;
}

const text = "안녕하세요, 세상!";
console.log(`UTF-8 기준으로 "${text}"는 ${calculateBytes(text)} 바이트입니다.`);

설명:

  1. TextEncoder 객체를 생성해서 문자열을 UTF-8로 인코딩해요.
  2. 결과는 바이트 배열이고, 배열 길이로 바이트 수를 알 수 있답니다.

결과는 Java랑 똑같아요. 역시 "안녕하세요, 세상!"은 21바이트. Java와 JavaScript가 은근히 짠듯이 맞아떨어지네요. 😄


두 언어, 성격이 다르지만 같은 목표 🎯

Java는 "내가 다 계산해줄게! 확실히 안전하게, 꼼꼼히!"라며 신뢰감을 주고, JavaScript는 "편하게 하자, 자유롭게 놀자!"라며 재밌게 접근해요. 두 친구가 성격은 달라도 이렇게 바이트 계산이라는 하나의 목표를 위해 멋지게 협력하는 걸 보니 뭔가 감동적이지 않나요?


실생활에선 어떻게 써먹나요? 🤔

이쯤 되면 이런 질문이 떠오를 거예요. "이걸 어디에 써요?"

  • API 데이터 크기 제한: 바이트 크기 초과로 요청이 실패할 때!
  • 파일 업로드: 업로드 파일의 크기를 제한하거나 경고할 때.
  • SMS 문자 메시지: 바이트 제한 있는 메시지에 특히 유용해요!

사실 우리의 작은 바이트 계산 함수들이 뒤에서 얼마나 많은 일을 하는지 알면, 그들이 너무 귀엽게 느껴질지도 몰라요. 😊


오늘의 마무리

Java와 JavaScript는 정말 재미난 프로그래밍 언어죠. 우리가 바이트를 계산해야 할 때, 이 두 언어는 각각 자신만의 방법으로 문제를 해결해줘요. 이제 여러분도 바이트 계산의 달인이 될 준비가 됐나요?

함수에게 "고마워!"라고 인사하며 오늘의 글을 마칠게요. 다음엔 또 재미난 주제로 만나요! 👋

 

댓글