[Java 풀스택 과정 강의] 3월 4일

부트캠프 일지/Java 풀스택 과정 강의
2026.03.04
※ TIL와는 별개로 적는 개인 개발 일지라서 말은 좀 편하게하는 페이지입니다.
일지이기 때문에 일기의 성격이 더 강합니다.

 

 

인코딩

ASCII 와 유니코드, UTF-8과 UTF-16에 대해서 배웠다. UTF-16은 자바에서만 보통 사용하므로, 일반적인 웹개발은 UTF-8을 사용한다. UTF-8은 ASCII와 100% 호환된다.

간단한 개념설명 정도 하고 넘어갔는데, 관련한 좋은 포스팅이 있어서 첨부.

 

아스키(ASCII)코드와 유니코드(Unicode)의 이해

 

아스키(ASCII)코드와 유니코드(Unicode)의 이해

안철수 의원이 의대생 시절에 다른 분야의 지식을 습득하고 싶으면 '칼럼'을 쓰라는 내용을 읽은 적이 있다. 프로그래밍 언어를 공부하다보면 항상 '아스키코드, 유니코드'와 마주치는 순간이

whatisthenext.tistory.com

 

 

String

일단 문자열은 불변(Immutable) 객체이다. 절대 변하지 않는 것으로, 재할당한다고 하여도 그게 바뀌는 게 아니라 바뀌는 것처럼 보일 뿐이다(새 객체를 생성한다).

리터럴의 경우 재사용이 가능하므로 메모리 효율이 나쁘지 않지만, 새 객체를(new 연산자 사용) 만든다면 그만큼 메모리가 쌓여가니 주의할 것.

이런 특성들 때문에 문자열을 쌓을 필요가 있다면 StringBuilder를 사용한다.

 

String 주요 메서드를 다시 설명해주셨는데, 사실 저번에 한 적이 있다.

https://bbbbabbbababababa.tistory.com/89#string-%EC%A3%BC%EC%9A%94-%EB%A9%94%EC%84%9C%EB%93%9C

 

[Java 풀스택 과정 강의] 2월 25일

※ TIL와는 별개로 적는 개인 개발 일지라서 말은 좀 편하게하는 페이지입니다.일지이기 때문에 일기의 성격이 더 강합니다. 알고리즘 기초우리는 Java를 기반으로 알고리즘을 배운다. 그러하여 j

bbbbabbbababababa.tistory.com

 

 

BRUTE FORCE

Brute Force는 알고리즘 중에 패턴 매칭에 대한 알고리즘으로, java 내의 indexOf도 이 방식을 사용한다. 즉, indexOf 메서드를 길게 풀어낸 것에 가깝다.

본문 문자열을 charAt으로 나누어 불일치 시 시작 위치를 한 칸씩 이동하는 것으로, 일치하면 "첫 번째로" 일치하는 index를 돌려주는 것.

 

public int bruteForce(String pattern, String text) {
    int M = pattern.length();
    int N = text.length();
    int i = 0; // 본문(text)의 인덱스
    int j = 0; // 패턴(pattern)의 인덱스
    while (j < M && i < N) {
        if (text.charAt(i) != pattern.charAt(j)) {
        	i = i - j; j = -1; // j는 0으로 초기화 (아래에서 +1됨)
        }
        i += 1; j += 1;
    }
    if (j == M) { return i - M; // 패턴이 일치하는 시작 인덱스 반환 }
    return -1; // 패턴이 본문에 없는 경우
}

 

다만 이 방식은 최악의 경우 전체 순회를 해야하기 때문에 조금 불편하다.

이 Bruteforce를 사용해서 푼 포스트가 있다.

 

https://bbbbabbbababababa.tistory.com/119

 

[코딩 테스트 RUN] SWEA 수업 : 1213. String

⚠️ 주의!SWEA에서 낸 코딩 문제에 대한 해답이 들어있습니다.열람 시 주의해주세요. [SW Expert Academy] 1213. String SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하

bbbbabbbababababa.tistory.com

 

이 Brute-Force의 아쉬운 점을 보완하기 위해 Boyer-Moore를 쓴다는데 이에 대해서는 자세히 배우지 않았다.