본문 바로가기

백엔드

(4)
스프링을 다시 시작해보자 ! 최근 몇달 간 클라우드 및 인프라 공부를 하며 스프링 개발을 하지 않은지 꽤 되었던거 같다. 여러 사람을 만나고, 몇가지 활동들을 참여하며 최근에 내린 결론은 '어떤 직무를 희망하든 개발 능력은 기본적으로 구비되어야 한다'는 것이다. 이러한 결론을 내린 뒤 책을 통해 꾸준히 스프링 공부를 하고 있었는데, 객관적으로 바라보았을 때 내가 정말 깊이 있게 스프링을 알고 있지는 않다는 생각이 들었다. 어떠한 어노테이션이 있다고 했을 때, '내가 봤던 자료나 책에서 000 장점이 있으니 써야한다' 정도의 생각으로만 접근했지, 이걸 사용하지 않았을 때 어떤 문제점이 야기되는지 이러한 것들이 궁극적으로 어떠한걸 위하는지 등에 대한 고려를 전혀하고 있지 않았다. 내년 휴학 인턴 구직을 위해서든, 2년 뒤 취업시장에서의..
DB replication 사용이유 DataBase 안정성을 위해 사용됩니다 리플리카 서버는 아주 약간의 딜레이가 있지만 거의 실시간으로 마스터 서버와 동일한 데이터를 가지고 있기 때문에 장애 복구 시 데이터 소실이 최소화됩니다. 특징 리플리카 서버는 마스터 서버로 승격이 가능하기에 마스터 서버로 승격시켜 기존 마스터 서버를 대체하는 방식으로 복구가 진행됩니다 복제서버인 리플리카는 기본적으로 읽기 전용입니다 마스터 서버는 SQl 명령을 수신하면 그 SQL 명령을 리플리카 서버에도 똑같이 보냅니다 그러면 마스터 서버와 리플리카 서버의 데이터가 동일한 상태로 유지합니다 MySQL의 Replication은 기본적으로 비동기 복제 방식을 사용하고 있습니다. Master 노드에서 변경되는 데이터에 대한 이력을 로그에 기록하면 Relicat..
Swagger을 통해 OpenAPI 문서화하기 OAS에 대해 알아보기 OAS에 대해 알기 전 선행되어야 하는 개념들이 있다 REST Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것 HTTP Method를 통해 CRUD Operation을 적용하는 것을 의미한다 EX) DB의 게시글 정보가 자원일 때, posts로 표현함 RESTful API란? REST 기반으로 서비스 API를 구현한 것 기본 규칙 resource는 동사보다는 명사를, 대문자보다는 소문자를 사용한다 resource의 도큐먼트 이름으로는 단수 명사를 사용해야 한다 resource의 컬렉션 이름으로는 복수 명사를 사용해야 한다 resource의 스토어 이름으로는 복수 명사를 사용해야 한다 자원에 대한 행위..
N+1문제 N+1문제를 위해 필요한 기본 개념들에 대해 먼저 설명하겠습니다 ORM(Object-Relatonal Mapping) 우리가 일반 적으로 알고 있는 애플리케이션 Class와 RDB(Relational DataBase)의 테이블을 매핑(연결)한다는 뜻이며, 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 보면됩니다 장점 SQL이 아닌 Method를 이용하여 DB조작할 수 있어, 비지니스 로직을 구성하는데만 집중할 수 있습니다 객체지향적인 코드 작성 가능 -> 생산성 증가로 이어집니다 DB 종류를 변경할 경우에 ORM을 사용하면 쿼리를 수정할 필요가 없습니다 JPA • JAVA에서 ORM 기술 표준으로 사용하는 인터페이스 모음입니다 • 자바에서 관계형 데이터베이스를 사용하는..