분류 전체보기 52

[TIL] AWS 인프라 구성 및 모니터링

6월에 팀프로젝트를 진행하면서 개인적으로 아쉬웠던 부분은 프로젝트를 서버에 띄워보지 못했다는 것이다. 로컬에서는 어플리케이션이 잘 돌아가는걸 확인 했지만, 실제 서버에 띄워서 개인적으로 성능 테스트를 진행해보고 싶은 욕심이 생겼다. 예전에 EC2 서버 정도는 한 번 띄워봤는데, 오늘은 강의를 통해 전체적인 인프라를 한 번 구성해보았다. AWS 인프라 아키텍쳐 이번에 구성한 인프라 아키텍쳐는 위와 같다.일단 연습삼아 구성한거라 추후 실제 프로젝트에 적용할 때는 변경이 있을 수도 있다. 인프라 구성을 위해 VPC, Subnet, EC2, RDS 등 모든 서비스를 직접 구성한다면,그리고 이 과정을 매번 반복해야한다면 너무 힘들 것이다.따라서 이런 반복 작업을 줄이기 위해 Terraform으로 AWS 설정을 ..

TIL/네트워크 2025.06.28

[데이터 교환 형식] xml

XML(Extensible Markup Language)이란?XML은 데이터의 구조와 의미를 사용자 정의 태그로 표현할 수 있는 마크업 언어입니다. 주로 시스템 간 데이터 저장 및 교환에 활용됩니다. Markup태그나 기호를 활용해 데이터 구조나 의미를 부여하는 것 [예시]• HTML, XML: 태그 중심() • Markdown: 기호(#, **, -) • LaTeX: 백슬래시 + 명령어 (/)  XML의 기본 구성XML은 프롤로그, 하나의 루트 요소, 그리고 그 안에 포함되는 여러 하위 요소들로 구성됩니다.  ...  프롤로그(Prolog)문서의 시작 부분에 위치하며, version, encoding 내용을 포함한다.• version: XML 버전• encoding: 문자..

Dev 2025.04.11

[데이터 교환 형식] JSON의 직렬화와 역직렬화

JSON(JavaScript Object Notation)이란?JSON은 Javascript 객체 문법을 기반으로 구조화된 데이터 교환 형식입니다.Python, Javascript, Java 등 여러 언어에서 데이터 교환 형식으로 사용되며, 객체(Object) 형식 외에도 단순 배열, 문자열도 표현 가능합니다. Javascript의 객체(Object)Key-Value 형식으로 구성된 데이터 구조이다.const person = { name: "뚜룻", age: 29, isDeveloper: true}; Javascript VS JSONJSON은 Javascript 객체 리터럴 문법에서 파생된 텍스트 기반 데이터 포맷이고, Javascript는 제어 흐름과 로직을 실행하는 프로그래밍 언어이다. JSON..

Dev 2025.04.05

[Trouble shooting] 플러스 챕터 개선 과제 - 트러블 슈팅

25. 01. 20 기록Connection is read-only [문제 상황]게시글을 작성하려 하는데 아래와 같은 오류가 발생한다. 오류 전문은 다음과 같다.jakarta.servlet.ServletException: Request processing failed: org.springframework.orm.jpa.JpaSystemException: could not execute statement [Connection is read-only. Queries leading to data modification are not allowed] [insert into todos (contents,created_at,modified_at,title,user_id,weather) values (?,?,?,?,?..

프로젝트 2025.01.27

[KPT] 팀 기초 프로젝트 회고록 - '쉐어데이 뉴스피드 프로젝트'

프로젝트 흐름  https://github.com/sumin9926  Keep - 유지할 점▪️자유로운 소통 분위기팀원의 의견을 경청하고 반응해주는 태도. ▪️와이어프레임을 먼저 짜고 그 안에서 어떤 API가 필요한지 고민하고 ERD를 작성한 것명확한 와이어프레임이 있으니 막연하게 어떤 API가 필요하다고 이야기하는게 아니라, 진짜로 필요한 기능만 얘기하게 돼서 좋았다. (스코프가 무한정 확산 되는 것을 방지. 핵심기능과 부가기능을 구분하는데에 유용) ▪️API명세, 엔티티를 구체적으로정한 것변수명을 미리 정해둔 덕분에 각자가 만든 코드를 합칠 때 충돌이 적게 일어났다. 또한 각 기능에 대해 (요청을 어떻게 받을 것이고, 응답은 어떻게 할 것인지, 각 상황별 HTTP 응답은 무엇으로 할 것인지) 구체적으..

[TIL] 스프링 인터셉터, 개인프로젝트 회고

TIL을 작성하면서 오늘 하루 무엇을 공부했는지 회고해보려한다.이렇게라도 정리해두지 않으면 제대로 끝낸게 없어보여서 '하루종일 뭐했니!' 하고 자책하게 되는 것 같다. 😣1개인 프로젝트 마무리 오늘은 개인프로젝트 마지막날이라 오전 내내 정신이 없었다. 원래는 Lv.6까지 구현하는게 목표였는데, 시간 부족으로 Lv.5 일부까지 구현하고 제출하였다. (점심도 거르고 마지막까지 최선을 다했지만 스스로 정한 기준이 너무 높은건지 썩하니 만족스럽지는 않다.) 그래도 테스트코드를 새로 배운 기념으로 꼭 한 번 적용해보고싶었는데, 쉽지는 않았지만 과제를 통해 사용해볼 수 있는 기회를 얻게 되어 좋았다.새로 배운 내용을 적용하는 것은 쉽지않지만, 정말 '백문이불여일타'라고 직접 써보는게 개념 이해에 정말 큰 도움이 ..

TIL/Spring 2025.01.07

[TIL] ENUM에 대해 알아보자

과제를 수행하던 중 문득 궁금해졌다..name()은 ENUM에 기본적으로 포함되어있는 메서드인가? 클릭해보니 .name()은 ENUM에 포함된 메서드라는 것을 확인할 수 있었다. 찾아보니 .name()외에도 생각보다 다양한 메서드가 있어서 이번 기회에 쭉 정리해보았다.ENUM의 기본제공 메서드 values( )▪️enum에 정의된 모든 상수를 배열로 반환한다.▪️예시⬇️public enum UserRole { ADMIN, USER}public static void main(String[] args) { for (UserRole role : UserRole.values()) { System.out.println(role); }}  valueOf(String str)▪️문자열로 ..

TIL/JAVA 2025.01.03

unique 대신 @uniqueConstraint를 사용하자

JPA에서 unique 속성을 사용하면 일어나는 일 이제까지 프로젝트를 진행하면서 어떤 컬럼의 값이 중복되는 것을 방지하기 위해 unique 속성을 즐겨 사용했었다. 하지만 이렇게 unique 속성을 사용했을 때 큰 단점이 하나 있다.JPA에서 해당 컬럼에 대한 unique 제약조건을 만들어주기는하는데, 대신 제약조건의 이름이 랜덤으로 정해진다는 것이다.아래 사진에서 빨간색으로 표시해둔 부분이 바로 제약조건의 이름이다.   제약조건 이름이 랜덤인게 뭐가 문제인가? 뭐가 문제인지 알고싶으면 직접 오류를 일으켜서 확인해보는게 확실하다.postman을 사용해서 일부러 중복되는 email을 저장해보았다. 콘솔창도 확인해보자.내용이 너무 길어서 일부만 캡쳐해왔다.아래 빨간박스로 표시한 부분이 바로 JPA에서 랜덤..

Dev/JPA 2025.01.02

[Trouble shooting] JPA를 활용한 일정 관리 앱 만들기 - 트러블 슈팅

24. 12. 16 기록Spring Data JPA Auditing 활성화를 잊지 말자 [문제 상황]회원 가입 API를 만들고 postman을 실행했는데, 자동으로 생성되어야하는 "createdDate"값이 null로 나왔다.  [해결 시도]먼저 오타나 누락한 어노테이션은 없는지 살펴보았다.하지만 필요한 어노테이션도 다 달았고, Member 클래스에 상속도 잘 되어있다. Controller, Service, Repository 모두 살펴 보았지만 로직 문제는 아니었다.  [해결]검색을 통해 내가 Spring Data JPA의 Auditing 기능 활성화 단계를 거치지 않았다는 것을 알게 되었다. 😶이에 @EnableJpaAuditing 어노테이션을 @SpringBootApplication이 선언된 클래..

[TIL] 데이터가 없으면 - 200? 404?

24. 12. 17 기록 요즘따라 시간이 빠르게 지나간다. 공부도 얼마 못한 것 같은데 '왜.. 벌써.. 저녁?' 아무래도 트러블 슈팅에 TIL에 작성해야할게 산더미이다 보니 더 그렇게 느껴지는 것 같다.API 하나 구현하다 궁금한게 생기면 찾아보고, 트러블 슈팅 쓰면서 자료 찾아보고...정신없이 궁금증을 해결하다보면 1시간, 2시간은 훌쩍 지나간다. 이것저것 찾아보느라 오늘도 과제 구현은 느림보 달팽이지만, 그래도 새로 알게된 것들이 많아서 정말 기쁘다! 새로 알게된 내용을 간략히 정리해본다. @RequiredArgsConstructor이 뭘까? @RequiredArgsConstructor는 롬복(Lombok) 라이브러리에서 제공하는 애노테이션다.클래스에 있는 final 필드와 @NonNull 애노테이..