1주차 정리
·
Dev/WANTED AI NATIVE CAREER CAMP 1기
AI 개념 & 동작 원리생성형 AI란생성형 AI는 어딘가에 있는 것을 찾아주는 것이 아니라 새로 만들어낸다.글도, 이미지도, 코드도 모두 새로 만들어낸다. 이것을 하는 것이 LLM, 즉 방대한 양의 글로 훈련된 언어 모델이다. 명령어를 외울 필요 없이 말로 시키면 되기 때문에, 누구나 쓸 수 있다는 점이 특징인데 검색과 비교하면 차이가 분명해진다. 검색은 "어디에 있는지"를 알려주는 데서 끝나지만, 생성형 AI는 "그것으로 무엇을 만들지"까지 해줍니다. 일하는 방식 자체가 달라지는 셈입니다. 이 과정의 슬로건인 "검색하지 말고, 일을 시켜라"가 여기서 나옵니다.한마디로, 다음 단어 예측기AI가 답을 만드는 원리는 단순하다."나는 밥을" 다음에 올 가장 그럴듯한 말을 확률로 고르고, 그것을 계속 이어 붙인..
뱅크샐러드의 코드 리뷰 문화
·
Dev/개발 이야기
코드 리뷰개발자가 작성한 코드를 다른 사람들이 검토하고 피드백을 전달하며, 다시 작성자가 반영하는 과정우리는 코드리뷰를 통해 서비스의 기술적인 구현 부분에 대해 공유 및 습득할 수 있으며, 일관된 아키텍처를 유지하고, 문제를 해결할 수 있는 새로운 관점을 발견할 수 있다.더 나아가, 잠재적인 장애와 버그를 배포 전에 발견하여 전반적인 서비스 운영 비용을 절약할 수 있다.나는 우연히 뱅크샐러드의 코드 리뷰 문화 글을 볼 수 있었고 오늘 이 글을 정독하며 내 머리에도 정리를 해보고자 본 게시글을 작성한다. 코드리뷰 in 뱅크샐러드 개발 문화1. GitHub과 비동기 커뮤니케이션개인 업무 시간 존중과 커뮤니케이션 비용 절감을 위해 Jira, Slack 등 비동기 방식을 지향코드 리뷰 툴로 GitHub PR을 ..
1주차 Claude Code 실습 프롬프트 회고
·
Dev/WANTED AI NATIVE CAREER CAMP 1기
Claude Code로 개인 포트폴리오 웹사이트 바이브코딩 하기Next.js + Tailwind로 나를 소개하는 한 페이지짜리 인터랙티브 웹사이트를 만들었다.코드는 한 줄도 직접 안 짜고, AI에게 계속 "이렇게 해줘", "이건 별로다", "이거 왜 이래?"를 반복하면서 완성했다.자기소개 / 기술 스택(Java, Spring, JWT, MySQL...) / 관심사(여행, 게임, 사진)다크모드 토글 (그냥 색만 바뀌는 게 아니라 버튼 누른 자리에서 원이 퍼지는 애니메이션)다크모드일 때만 나오는 밤하늘 배경 — 마우스를 가져가면 근처 별들이 반짝이며 커지고, 별자리처럼 선으로 이어짐도스(DOS) 프롬프트 스타일로 타이핑되는 인트로 (한 / 영 / 일 3개 언어 순환)메뉴 옆에 내 위치 기반 실시간 기온/날씨..
김성광 Front-End Tech Leader님의 멘토링
·
Dev/WANTED AI NATIVE CAREER CAMP 1기
기술이 목표가 아니다.면접관이 가장 사랑하는 질문Q1. 그걸 어떻게 아나요? -> 검증 해봤음?ex) 프로젝트에 Redis를 썼던데 왜 쓰셨나요?Q2. 왜 이렇게 했나요? -> 뭔 생각으로 그런거임?ex) 당시 트래픽이 어느 정도였길래? Redis 없이 해결할 방법은 생각 안해봄?면접관이 확인하려는 것은 내가 아는 기술이 어느 정도인지 확인하려는게 아니라 얼마나 고민하고 판단을 내렸는지 그 흔적을 확인하고자 하는 것이다.마이크로 서비스는 비슷한 것끼리 묶는게 아니다.마이크로 서비스는 비슷한 것끼리 묶는게 아니라 함께 변경되는 것끼리 묶는 것이다.마틴 파울러의 마이크로서비스성공적인 마이크로서비스 사례는 너무 커진 모놀리식 아키텍처 (Monolithic Architecture) 를 분할하는 것에서 시작.처음..
과거와 달라진 요즘의 취업 준비
·
Dev/WANTED AI NATIVE CAREER CAMP 1기
요즘은 기업의 비즈니스 도메인을 이해하고 기업 및 채용 공고를 분석하는게 기본인 시대이런 요구사항들을 기반으로 내 경험을 정리해야 서류 통과가 되고 면접을 볼 기회가 생기는데 이러한 시대 속 어떤 마음가짐으로 준비해야하고 어떻게 하면 좋을지 간단하게 정리했습니다.기업의 결정을 내가 내리지 말자!안되는 건 없고, 기업의 요구사항이 명확하다면 확률은 낮을지언정 결국은 기업이 모든걸 판단한다.서류의 가치를 의심하지 말자.'무엇을 설명하는지, 읽으면 무엇을 확인할 수 있는지' 잘 가이드 한다면 누군가는 읽는다. 기업이 원하는 임팩트를 10초 안에 찾을 수 있게, 내 경험에 어울리는 구성이 필요하다. 서류 작업은 확률을 높이는 과정이고 구직 시점에 유일하게 바꿀 수 있는 것이다.좋은 회사에 목매지 않아도 괜찮다!..
AI, 개발자가 생각해야 하는 숙제
·
Dev/WANTED AI NATIVE CAREER CAMP 1기
거두절미하고 본론만 말하면 현재 시장은 개발자를 뽑지 않고 있으며, 직군의 경계가 희석되고 기능 단위로 역할군을 분류하는 시대는 이제 종말로 다가가고 있다. 사실 커리어 캠프 참여 이전에 주식 트레이딩을 하며 살았고 시장 분석을 필수적인지라 시황 분석은 매일같이 하고 있었기에 개발자 채용 규모가 점점 줄어들고 있다는 것은 알고 있었다. 하지만, AI로 인해 역할군의 경계마저 무너지고 있다는 점은 새롭게 다가왔다. 기수님은 개발자들은 이제 매달 수 백 달러짜리 AI Agent 요금제를 자연스럽게 사용하며, AI를 얼마나 잘 활용하는지 증명해야 살아남을 수 있다고 설명하셨으며, 한마디로 말해서 한 명의 개발자가 1개 팀 수준의 능률을 발휘해야 하고 이를 위해 AI 활용 능력은 필수불가결하다는 것으로 기본적인..
Spring Security + JWT 인증 구현하기
·
Dev/Spring
개요본 글에서는 Spring Security와 JWT를 이용해 로그인/회원가입 API를 구현하고,인증된 사용자만 API에 접근할 수 있도록 설정해보겠습니다.1. JWT란?JWT(JSON Web Token)는 로그인 성공 시 서버가 발급해주는 암호화된 문자열.eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0QGdtYWlsLmNvbSJ9.abc123xyz세 부분이 . 으로 구분되어 있습니다.헤더.페이로드.서명 ↓ ↓ ↓암호화 사용자 위조방식 정보 방지동작 흐름1. 클라이언트가 이메일/비밀번호로 로그인 요청 ↓2. 서버가 DB에서 사용자 확인 후 JWT 토큰 발급 ↓3. 클라이언트가 토큰을 저장해두고 ↓4. 이후 요청마다 토..
Spring Boot DTO 패턴과 유효성 검사 적용하기
·
Dev/Spring
개요이번에는 Entity를 직접 노출하지 않고 DTO를 통해 요청/응답을 처리하는 DTO 패턴과,잘못된 요청 데이터를 검증하는 유효성 검사를 적용하는 법을 배워보겠습니다.1. DTO 패턴이 필요한 이유기존 구조에서는 Entity를 직접 응답으로 내보내고 있었는데 나중에 회원 기능을 추가하면 User Entity에 password 같은 민감한 정보가 클라이언트에 그대로 노출, 전달되는 보안 문제가 발생합니다. 하지만, DTO를 사용하면 응답에 포함할 필드를 직접 선택할 수 있어 이 문제를 해결할 수 있습니다.기존: 클라이언트 ↔ Entity (DB 테이블 그대로 노출)개선: 클라이언트 ↔ DTO ↔ Entity2. TodoRequestDto vs TodoResponseDtoDTO는 방향에 따라 두 가지로 ..
Spring Boot 전역 예외 처리하기
·
Dev/Spring
개요기본적으로 Spring Boot에서 예외가 발생하면 다음과 같이 내부 정보가 그대로 노출되는데 이는 보안 취약점을 드러낼 수 있고,클라이언트 입장에서도 어디서 어떤 문제가 발생하였는지 확인하기가 어렵습니다.{ "timestamp": "2026-...", "status": 500, "error": "Internal Server Error", ...} 하지만, 전역 예외 처리를 적용하면 아래처럼 깔끔하게 응답할 수 있습니다.{ "status": 404, "message": "(찾고자 하는 투두의 번호)번 할 일을 찾지 못했습니다."} 1. HTTP 상태코드 정리예외 처리를 구현하기 전에 자주 사용하는 HTTP 상태코드를 먼저 간단하게 알아보겠습니다.상태코드의미사용 예시20..
Spring Boot Service 레이어
·
Dev/Spring
개요본 게시글에서는 기존 Controller에 몰려있던 비즈니스 로직을 Service 레이어로 분리하는 과정을 다룹니다.1. Service 레이어를 왜 쓰는 걸까요? 굳이 필요한 기능인가요?기존 구조는 아래와 같습니다.Controller → Repository → Database이전의 게시글까지는 Controller가 요청/응답 처리와 비즈니스 로직을 동시에 담당하게 했습니다.프로젝트가 대형화될수록 Controller가 복잡해지는 문제가 발생하게 되는데 이를 해결하기 위해선 Service 레이어를 추가할 필요가 있습니다.Controller → Service → Repository → Database계층역할Controller요청/응답 처리만 담당Service비즈니스 로직 담당RepositoryDB 창구 (..