본문 바로가기

전체 글46

Spring Security Principal 이 Secured Resource 에 접근할 때 Authentication 을 통해 신원을 확인하고 Authorization 을 통해 접근 권한을 검증하는 보안 프레임워크 컨테이너에 무관하게 적용한다. WAR, EAR 형태로 배포될 수 있다. Servlet Application에서는 Filter 기반으로 동작한다. Spring 기반 애플리케이션이 아니어도 Spring Security 적용이 가능하다. @Transactional 처럼 보안적인 이슈와 business logic 을 분리한다. basic, form, cookies 등 다양한 인증 방법을 사용 가능하다. 또 properties file, 메모리, RDBMS, LDAP 등 사용자 정보 저장 방법도 다양하다.Authenticat.. 2026. 5. 21.
NotebookLM + Gemini 로 객관식 시험 공부하는 법 ⭐️실전 가이드⭐️ 나는 시험 칠 때 문제 양치기를 하는 것을 좋아한다! 그래서 학생 때는 친구와 퀴즈를 내면서 공부했고자격증 시험을 칠 때는 CBT, 기출 문제를 애용하였다SSAFY 시험을 칠 때는 클로드로 퀴즈를 만들어서 풀기도 했다 그런데 이렇게 만드는 퀴즈의 양은 한정적이다.무한히 문제를 내줄 친구도 이제 없고, 클로드가 만들어주는 퀴즈는 내 취약 유형을 반영하지 못한 채 반복된다. 그래서 찾은 조합이 NotebookLM + Gemini다.나는 평소 학습을 할 때는 Gemini 를 사용하고 있다.출처와 최신 동향은 GPT 나 클로드가 더 잘 알지만토큰 걱정 없이 CS 를 학습하기에 적합했고 전혀 무리 없었기 때문이다. NotebookLM 이란 구글에서 만든 AI 노트 도구다.GPT 나 Gemini 는 자기가 학습한 .. 2026. 5. 11.
공공기관 시스템의 클라우드 전환과 MSA 적용 (1) 조사를 바탕으로 한 개인적 의견입니다. 참고만 해주세요.!클라우드 전환을 하는 이유먼저 클라우드 전환이란 시스템이 돌아가는 인프라 환경을 바꾸는 것이다. 예를 들어 기존 기관 내부 서버나 IDC에서 운영하던 시스템을 AWS, Azure, GCP, 네이버클라우드, KT클라우드 같은 클라우드 환경으로 옮기는 것을 말한다. 전환 대상은 서버, 네트워크, 스토리지, 데이터베이스, 보안 설정, 운영 환경 등이 될 수 있다. 쉽게 말하면 온프레미스 서버에서 운영하던 시스템을 클라우드 VM, 컨테이너, Kubernetes, 관리형 데이터베이스 같은 환경으로 이전하는 것이다. 클라우드 전환의 목적은 확장성, 유연성, 운영 효율, 자원 관리에 있다. 기존 온프레미스 환경에서는 서버를 미리 구매하고, 용량을 예측하고, 장.. 2026. 5. 10.
에이전트가 UI를 못생기게 만드는 이유, 그리고 해결 방법 AI 코딩 에이전트는 이제 웬만한 CRUD 화면은 순식간에 만들어낸다. 문제는 "작동하는 화면"과 "좋아 보이는 화면" 사이에 여전히 큰 간격이 있다는 점이다. 기능은 맞는데 이상하게 촌스럽고, 정렬은 맞는데 제품처럼 보이지 않고, 컴포넌트는 많은데 전체 인상은 산만하다. 왜 그럴까. 이유는 꽤 단순하다. 대부분의 에이전트는 코드를 많이 학습했지만, 좋은 디자인의 취향을 구조화해서 학습하지는 못했기 때문이다.에이전트는 왜 이렇게 자주 못생긴 UI를 만들까LLM은 HTML, CSS, React 코드를 엄청나게 많이 봤다. 그래서 버튼을 만들고, 카드 레이아웃을 만들고, 다크모드를 토글하는 일은 잘한다. 하지만 그 능력은 "구현 능력"이지 "심미적 판단 능력"과는 다르다. 보통 에이전트가 만든 UI가 못생겨.. 2026. 5. 2.
[SSAFY] 싸피 15기 지원 후기 (서울 전공 JAVA 반) 16기 지원을 받고 있는 지금!현재 다니고 있는 중이기 때문에 신상이 털릴까봐 참고 있던SSAFY 15기 지원 후기를 작성하려고 한다! 전공자이고 전공 JAVA 반에 지원했다.1지망은 서울, 2지망은 대전이었다. 지원 프로세스는 다음과 같다.지원서 작성 (서류 전형) -> 코딩 테스트 -> 면접지원서 작성500자였나? 길이가 적어서 많이 쳐냈다.SAFFY 에 지원한 동기 ⭐️⭐️⭐️⭐️⭐️ 를 가장 중요하게 여기며 작성했다.아니 이쯤에 총알이 다 떨어져서 무직 백수가 될까봐 쪼들렸기 때문에정말... 성심성의를 다해 지원서를 작성했다. 교육 프로그램인 점을 고려해서왜 지원했는지가 명확하고 이 지원자가 입과하게 되면 얼마나 성장할 수 있는지를 보여주려고 가장 노력했다. 내가 무엇을 잘하는데, 진짜 쪼금 부족.. 2026. 4. 26.
[Linux] RAID(Redundant Array of Independent Disks) 여러 개의 저렴한 하드디스크를 하나로 묶어 성능을 높이거나 안정성을 확보하는 기능이다. 디스크 하나가 죽어도 데이터가 날아가지 않게 보호하거나, 여러 디스크에 데이터를 나눠 써서 속도를 비약적으로 높인다. 스트라이핑 (Striping): 데이터를 여러 디스크에 나누어 저장하는 것. (속도 향상 / RAID-0)미러링 (Mirroring): 똑같은 데이터를 다른 디스크에 복사해서 저장하는 것. (안정성 확보 / RAID-1)패리티 (Parity): 데이터 복구를 위한 체크용 정보. 디스크 고장 시 이 정보를 이용해 데이터를 되살린다. (효율적 안정성 / RAID-5, 6)용량 계산 공식(N: RAID 구성에 참여하는 총 디스크 개수, S: 개별 디스크 1개의 용량)기본 공식(N - 1) x S스페어 디스크.. 2026. 4. 20.
[소프트웨어공학] 응집도와 결합도 결합도와 응집도는 모듈 설계의 품질을 측정하는 개념이다. 결합도가 낮고 응집도가 높을수록 모듈 독립성이 높기 때문에 좋은 설계다.결합도 Coupling - 낮을수록 좋다개별 모듈 간에 상호 의존하는 정도자료 결합도 (Data)모듈 간의 인터페이스가 자료 요소로만 구성되어 있다. 파라미터로 단순 자료만 전달한다.낮은 결합도 (positive)스탬프 결합도 (Stamp)구조체 (레코드) 통째로 전달한다. 제어 결합도 (Control)제어 flag 를 전달한다. 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계 외부 결합도 (External)한 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조한다. 공통 결합도 (Common)공유되는 공통 데이터.. 2026. 4. 16.
내 코드가 서버에서 실행되기까지 (WAS, Apache, Nginx, Tomcat, Maven, Gradle, Servlet) Web Server정적인 콘텐츠(HTML, CSS, JS, 이미지 등)를 브라우저에 전달하는 역할을 한다.Apache HTTP Server, Nginx 등이 있다.WAS (Web Application Server)WAS 는 동적인 비즈니스 로직을 처리하는 서버다. Java 진영에서는 Apache Tomcat 이 가장 많이 쓰인다.클라이언트 → HTTP 요청 → WAS (Tomcat) → 응답 반환http://localhost:8080실무에서는 Nginx (웹 서버) + Tomcat(WAS) 를 함께 쓰는 구조가 일반적이다. Nginx 가 정적 자원을 처리하고, 동적 요청만 Tomcat 으로 넘긴다. 두 구조를 같이 사용하면 정적 파일은 웹 서버가 빨리 처리하고, 복잡한 로직만 WAS 가 담당하게 해서 부.. 2026. 4. 16.
[Network] 서브넷 마스크 & 프리픽스 & 네트워크 주소 IP 주소의 구조IPv4 주소는 32 비트이다.192 . 168 . 1 . 6511000000 10101000 00000001 01000001← 8비트 → ← 8비트 → ← 8비트 → ← 8비트 →이 32 비트는 네트워크부 + 호스트부 두 영역으로 나뉜다.네트워크부: "어느 네트워크인가" → 라우터가 패킷을 어디로 보낼지 결정하는 데에 쓴다.호스트부: "그 네트워크 안에서 어느 장치인가"서브넷 마스크 (subnet mask)서브넷 마스크도 32 비트이다.앞에서부터 연속된 1 → 네트워크부나머지 0 → 호스트부255 . 255 . 255 . 011111111 11111111 11111111 00000000← 네트워크부 24비트 .. 2026. 4. 16.