코딩 테스트에서의 입출력
·
BackEnd/Java
코딩테스트에서 입출력은 단순히 “값 읽고 출력하는 코드”가 아니라,시간 복잡도와 함께 성능을 결정하는 핵심 요소다.특히 백준 이나 SW Expert Academy 같은 환경에서는 입력 데이터가 수십만~수백만 개가 되는 경우가 많아서,입출력을 잘못 사용하면 알고리즘은 맞아도 시간 초과가 발생한다.그래서 코딩테스트에서는 보통 다음 4개를 가장 많이 사용한다.BufferedReaderStringTokenizerStringBuilderBufferedWriter그리고 추가적으로:ScannerSystem.out.printlnsplit()InputStream빠른 입력(Fast I/O)까지 이어서 공부하게 된다.1. 코딩테스트에서 입출력이 중요한 이유예를 들어 숫자 100만 개를 입력받는다고 해보자.Scanner sc..
컨벤션 설정
·
BackEnd/프로그래머스 데브코스
개념공부까지 마친 뒤 본격적인 구현에 대한 내용을 작성하기 전 우리 팀이 설정한 컨벤션들에 대해 공유하려고 한다.컨벤션 및 그라운드 룰을 간과하는 사람들이 있는데 팀 프로젝트를 할 때 매우매우매우 중요한 것이라고 생각한다.특히, 취준생에게는 설정부터 지키는 것 까지 매우 중요하다.회사마다 컨벤션이 존재할 것이고 이를 따라야 하기 때문이다.내가 속한 회사가 때로는 비효율적인 방식으로 개발하고 있거나내가 해왔던 방식과 다른 방식으로 흘러가고 있을 확률이 높다고 생각한다.이런 상황에서 내 방식만을 고집할 수 없는 것 또한 현실이다. 우리가 회의하면서 정한 Git 컨벤션이다. 1. Issuename: "Feature"description: "새로운 기능 추가"title: "feature: "labels: ["f..
JWT란 무엇일까?
·
BackEnd/프로그래머스 데브코스
인증 파트를 맡고 싶은 이유는 이전 글 2026.05.15 - [BackEnd/프로그래머스 데브코스] - MSA 환경에서의 DB 모델링 참고 MSA 환경에서의 DB 모델링이전 글 2026.05.14 - [BackEnd/프로그래머스 데브코스] - 세미 프로젝트 시작 참고 세미 프로젝트 시작약 2주의 온라인 강의를 진행한 후에 자유롭게 PR을 올려 자기 어필을 통해 팀을 구성하게 했고memo4667.tistory.com 내가 기존에 했던 프로젝트에서는 인증/인가 파트가 가장 난이도 어려운 도메인에 속했다.물론 인증/인가 로직 자체가 서비스마다 크게 다르지 않아서 공부를 제대로 하고 개발 경험이 있는 사람에게는 어려운 것이 아니지만Spring Security가 생소한 사람에게는 매우 어려울 수 있고 주니어 개..
MSA 환경에서의 DB 모델링
·
BackEnd/프로그래머스 데브코스
이전 글 2026.05.14 - [BackEnd/프로그래머스 데브코스] - 세미 프로젝트 시작 참고 세미 프로젝트 시작약 2주의 온라인 강의를 진행한 후에 자유롭게 PR을 올려 자기 어필을 통해 팀을 구성하게 했고 나는 운이 좋게 원하는 팀원들과 아주 빠른 시기에 함께하게 되었다. 그렇게 첫 오프라인이자 세memo4667.tistory.com 도메인을 분리하는 과정은 생각보다 훨씬 어려웠다.기존에는 하나의 DB 안에서 외래키와 트랜잭션으로 자연스럽게 해결하던 문제들을MSA 환경에서는 다른 방식으로 접근해야 했기 때문이다.특히 가장 크게 고민했던 부분은 데이터 정합성이었다.현재 프로젝트는 하나의 DB를 사용하고 있었지만,만약 실제 MSA 환경처럼 서비스별로 DB까지 분리된다면서로 다른 서비스의 데이터를 ..
세미 프로젝트 시작
·
BackEnd/프로그래머스 데브코스
약 2주의 온라인 강의를 진행한 후에 자유롭게 PR을 올려 자기 어필을 통해 팀을 구성하게 했고 나는 운이 좋게 원하는 팀원들과 아주 빠른 시기에 함께하게 되었다. 그렇게 첫 오프라인이자 세미프로젝트를 시작하는 날이 되었다.프로그래머스에서 세미프로젝트 명세서를 제공했는데 내용은 다음과 같았다. MSA 설계를 목표로 했지만, 프로젝트 환경상 하나의 레포와 하나의 DB를 사용해야 했다.아마도 인프라 비용이나 운영 측면의 제약 때문에 완전한 MSA 환경을 제공하기는 어려웠던 것 같다.결과적으로 완전한 MSA 구조보다는 멀티 모듈 아키텍처에 가까운 형태로 프로젝트를 진행하게 되었다.그러나 개발하는 것에 있어서는 끊임 없이 MSA 설계를 지향했고 MSA 환경에서 발생할 수 있는 문제를 고려하며 개발했다. 다시 ..
프로그래머스 데브코스 단기 심화 시작
·
BackEnd/프로그래머스 데브코스
이 글의 제목은 '프로그래머스 데브코스 단기 심화 시작' 이지만 실제로는 '수료'한 상태임을 미리 밝힌다. 데브코스 카테고리를 새로 만들고 여러 개의 글을 작성할 계획이다.내가 어떤 이유로 데브코스를 시작하게 되었고 프로젝트를 진행하면서 어떤 과정들이 있었고 어떤 고민들을 했는지정리해볼 계획이다. 기술적인 관점도 있을 것이며 일기같은 개인적인 감정들과 느낀점이 섞여 있을 것이라 예상한다. 데브코스는 단기 심화 과정이라 짧았지만 나의 개발 인생에 있어 큰 변화를 주었기 때문에이 순간들을 잊지 않기 위해 그리고 나와 비슷한 상황에 놓여있고 비슷한 고민을 갖고 있는 개발자 취준생들에게 조금이나마 도움이 되고자 블로그를 작성하기로 다짐했다.나는 24년 12월 30일부터 25년 6월 30일까지 한화시스템 beyo..
ACL 패턴
·
BackEnd/Spring
[DDD/MSA] 외부 시스템으로부터 내 도메인을 지키는 법: ACL 패턴 적용기새로운 프로젝트를 진행하며 마이크로서비스(MSA) 간의 통신을 구현할 때 가장 고민했던 지점은 **"외부 서비스의 변경이 우리 서비스의 핵심 로직을 흔들지 않게 만드는 것"**이었습니다. 이를 위해 도입한 ACL(Anti-Corruption Layer, 부패 방지 계층) 패턴에 대해 정리해 봅니다. 1. ACL(Anti-Corruption Layer)이란?ACL은 서로 다른 도메인 모델을 가진 두 시스템이 통신할 때, 외부 시스템의 복잡한 모델이나 기술적 세부사항이 내부 도메인으로 침투(오염)하는 것을 막아주는 보호 계층입니다.핵심 특징: 모델 보호, 상호 운용성 확보, 결합도 낮춤.구현 방법: 주로 Adapter 및 Fa..
글을 올리지 않은 이유
·
BackEnd/내일배움캠프
내일배움캠프 단기 심화 과정에 참여하며 배운 내용들을 정리해서 블로그에 올렸었는데 이후로 글을 올리지 않은 이유는수강 철회를 했기 때문이다. 혼자서 취준을 하던 중 좋은 기회를 발견해서 갑작스럽게 신청하고 진행했었는데 아무래도 계획된 것이 아니다 보니 여러 상황을 고려했을 때 철회하는 것이 좋다고 판단했기 때문이다. 자격증 공부와 원하는 공부들이 따로 있기에 철회를 했지만 혼자서 취업 준비 하기 힘들거나 장소, 시간적 제약이 있어 오프라인 부트캠프에 참여하지 못 하는 사람들에게는 추천한다.