전체 글 217

Backend 환경 구축

전자정부프레임워크 5.0 Spring Boot 프로젝트 구축하기프로젝트 시작에서는 왜 전자정부프레임워크 5와 Spring Boot를 선택했는지 정리했음이번 글에서는 실제로 백엔드 프로젝트를 구축한 과정을 기록하려고 함나중에 같은 환경을 다시 만들어야 할 때 이 글만 보고도 전체 흐름을 기억할 수 있도록 매뉴얼 형태로 작성했음이번에 구축한 환경은 다음과 같음전자정부프레임워크 5Spring Boot 3.5.6JDK 17Maven WrapperCursorPostgreSQLMyBatisapplication.propertiesapplication-secret.propertiescommon-message_ko.properties전자정부프레임워크 5 실행환경은 JDK 17 이상을 요구함다만 전자정부프레임워크에서 제공..

프로젝트 시작

환경구축"이번 프로젝트에서 가장 오래 고민한 건 코드를 작성하는 일이 아니라 어떤 기술을 선택해야 앞으로의 나에게 도움이 될까" 회사에서 신규 프로젝트를 하나 맡게 됐음프로젝트 내용은 한전 전력 데이터를 수집하고 이를 활용하는 시스템기존 플랫폼과 연계해서 한전 전력 데이터를 활용하는 프로젝트였음 처음 전달받은 내용은 단순했음전자정부프레임워크 사용Front는 React 사용나머지는 직접 결정처음에는 별생각이 없었음전자정부 프로젝트 하나 만들면 되는 줄 알았음근데 막상 시작하려고 하니까 생각보다 고민할 게 많았음전자정부는 어떤 버전을 사용할지Spring Framework를 사용할지 Spring Boot를 사용할지JDK는 어떤 버전을 사용할지기존 프로젝트와 개발환경은 어떻게 분리할지가장 먼저 했던 고민이번 프..

Kafka 설치하기

Docker로 ZooKeeper 없는 Kafka 3.4 KRaft 설치하기개요기존 Apache Kafka는 Broker의 메타데이터와 Controller 선출 정보를 관리하기 위해 ZooKeeper를 사용했습니다.하지만 최신 Kafka에서는 KRaft(Kafka Raft Metadata mode)를 이용해 ZooKeeper 없이 Kafka 자체적으로 메타데이터를 관리할 수 있습니다.이번 글에서는 Ubuntu 서버에 Docker를 설치하고 Docker Compose를 이용해 다음 환경을 구성합니다.Ubuntu 실제 서버Docker 및 Docker ComposeKafka 3.4ZooKeeper 미사용KRaft 모드단일 BrokerBroker와 Controller를 하나의 프로세스로 실행Kafka 데이터를 서..

기타/study 2026.08.03

Error - Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false') at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 1]

json 응답을 기대했지만 html 응답이 오니참지 못하고 오류를 뱉으며 나의 앞길을 막아선다 싸대기가 마렵다 구글링을 해봤을 땐 UTF-8로 인코딩 후 해결했다인자를 json으로 줬더니 해결됐다오타였다 등등 해결 방법이 각기 다르다 피곤하다내일 봐야겠다 해당 오류는 api가 기대하는 값이 아닌 것이 들어와서정의된 메세지가 아니라 그냥 쌩 오류를 뱉은 것이였다 맛있는 기대 값을 맥여주니 순한 양이 되었다 아무도 예측하지도 보지도 못한 곳을 보는 오토코그것이 javaboiii다

GIT - 끄적

GIT개발 후 push# javaboiii 작업환경에 맞춤# git add는 커맨드 말고 ui 이용# git commit -m "" 이것도git checkout 개발브랜치git status 파일 상태 확인git fetch origin 최신 상태 확보git checkout 공유브랜치 (main, master, release/dev 등)git pull origin 공유브랜치git merge 개발브랜치git push origin 공유 원격 브랜치 개발 후 개발브랜치를 어떻게 할 것인가 계속 사용 예정일 경우git fetch origingit checkout 개발브랜치git reset --hard 공유브랜치git push origin features/jun --force-with-lease 원격도 맞추기 결과..

javaboiii의 Git 2026.04.07

그뭔10 - AES/CBC/PKCS5Padding + Base64 암호화·복호화

웹 서비스나 내부 시스템에서 중요한 데이터(개인정보, 파일 등)를 보호할 때 자주쓰는 암호화 조합라고 함 AES + CBC 모드 + PKCS5Padding + Base64 암호화 과정평문(문자열)AES/CBC/PKCS5로 암호화> Base64로 문자 형태 변경> 저장 및 전송복호화 과정Base64 문자열Base64 디코딩> AES/CBC/PKCS5로 복호화> 평문 복원 1. AEBAES(Advanced Encryption Standard)는 대칭 암호키임대칭키란 암호화/복호화 할 때 쓰는 키가 같다는 뜻AES는 데이터를 16바이트(128bit) 단위로 끊어서 처리하는 블록 암호키 길이는 보통 128bit, 192bit, 256bit를 사용 (16, 24, 32 바이트) 블록 사이즈 : 16바이트(고정)..

기타/study 2025.12.11

Error - 인코딩 깨짐 현상

Error 열심히 만든 매뉴얼을 서버에 올렸더니 HTML에 포함된 한글이 ���, ¾Æ¹« 등으로 깨져 표시됨개발자 도구(Network 탭)에서 확인 시 Content-Type에 charset 정보가 누락되었거나 일치하지 않음로컬에서는 제대로 보이지만, 서버에 올리면 깨짐 발생 기본 인코딩은 EUC-KR로 설정되어 있었지만ActivePresenter에서 export된 HTML 파일은 UTF-8 with BOM으로 저장되어 있었음HTML 내부에 또는 선언이 없거나 잘못된 경우도 있었음 HTML 파일만 인코딩을 수정하고 서버에 업로드 시켰지만 여전히 인코딩 깨짐 현상JS 파일까지 인코딩 설정을 맞추니해결됨 한글 콘텐츠를 포함한 HTML 파일의 실제 저장 인코딩과웹서버 및 브라우저가 해석하는 인코딩이 ..

Exception - java.sql.SQLException: 결과 집합을 모두 소모했음

ExceptionresultSet에 더 이상 데이터가 존재하지 않는데 resultSet에서 데이터를 가져오려고 할 때 발생하는 에러메시지혹은 커넥션을 끊은 후 ResultSet을 참조하려고 할 때 발생 오류 발생 소스rs = pStmt.executeQuery();Map classInfoMap = (Map)OracleRowProcess.instance().toMap(rs); 수정 소스rs = pStmt.executeQuery();Map classInfoMap = null;if (rs != null && rs.next()) { classInfoMap = (Map) OracleRowProcess.instance().toMap(rs);}

2025년 5월 4주차 0000기업 2차 면접 후기

1. 질문2. Q&A 1. 질문입사 시 어떻게 업무를 진행할 것인지 계획가장 좋아했던 과목 / 자신있었던 과목공부 시간 / 자기계발 시간어떤 개발자가 되고 싶은지지원 동기직종 변경 이유자신을 한마디로 표현한다면취미 및 특기희망연봉연봉테이블에 맞춰 받게 되도 괜찮은지프로젝트에서 맡은 역할협업에 갈등이 있었는지 / 어떻게 해결했는지2 . Q&ASM업무가 주업무로 알고 있는데 개발 업무도 참여할 기회가 있는지자체 솔루션 개발에 참여할 기회가 있는지

INTERVIEW_EX 2025.05.22

2025년 5월 4주차 00기업 운영 면접 후기

1. 회사 및 업무 소개2. 질문3. Q&A 2. 질문대학교 졸업 후 현재까지 어떻게 지냈는지최근 가장 깊게 생각해 봤던 것살아가면서 가장 중요하게 생각하는 것SQL에서 VARCHAR와 CHAR의 차이점오버로딩과 오버라이딩 설명call by value와 call by reference 설명class와 instance 차이점주식 관련 지식후기자세하고 디테일한 설명을 원할때깊게 생각해본적 없는 질문이 나오면답변이 쉽게 나오지 않는다하나 하나 깊게 생각해 볼 필요가 있다

INTERVIEW_EX 2025.05.20