반응형 개념쌓기63 [개념쌓기] N+1 문제 FetchType에 대해 공부한 후 연장선 상에서 N+1문제까지 같이 공부했다. 정리를 글 하나에 같이 하기에는 내용이 너무 많은 것 같아, 가독성을 위해 분리했다. JPA & JPQL N+1을 이해하기 위해서는 JPA와 JPQL에 대해서 알아야한다. 그렇다면 JPA 와 JPQL는 무슨 관계일까 우선 JPQL은 엔티티를 조회하는 객체지향 쿼리이다. 따라서 대상 테이블에 쿼리를 날리는 것이 아니라 엔티티 그 자체에 쿼리를 날리는 것이다. 문법은 SQL과 유사하며 간결하다. JPQL은 결국 SQL로 변환되긴한다. JPA에서 제공하는 메소드 호출만으로는 섬세하게 쿼리 작성이 어렵다는 점에서 JPQL이 탄생하게 되었다. JPQL의 장점은 SQL을 추상화해서 특정 DB에 의존하지 않는다는 점이다.즉, 여러 DB에.. 2023. 1. 2. [개념쌓기] WAS & WS WAS WERE?뭔 헛ㅅ ㅁWS(Web Server)는 정적인 컨텐츠(html,css,js)를 제공하는 서버이다. ex) Apache, Nginx ㅁ WAS는 DB 조회나, 어떤 로직을 처리해야하는 동적 컨텐츠를 제공하는 서버이다. ex) Tomcat, Jeus 한국의 코리안을 위한 짧은 쇼츠 요약 서머리 WS와 WAS의 제일 큰 차이는 어떤 타입의 컨텐츠를 제공하냐의 차이인 것이다. 웹 서버와 WAS는 각각 독립적으로 존재할 수 있다. 대부분의 WAS는 정적인 컨텐츠를 제공해주기 때문에, 웹 서버 없이 WAS만 존재할 수 있다. 그렇기에 WAS는 웹 서버를 내포하는 개념으로 말할 수 있다. WAS 자체로 웹 서버의 역할을 수행하기 때문에 무조건적으로 웹 서버를 앞단에 두어야 할 이유는 없다. 무슨 말인.. 2022. 12. 28. [개념쌓기] RESTful하다 ✅REST 란? REST(Representational State Transfer, 자원의 상태 전달) 네트워크 아키텍쳐 원리 ✅RESTful하다란 그럼 무엇일까? RESTful한 API가 아닌 RESTful 그 자체에 대해 궁금증이 생겼다. REST의 원리를 잘 지키는 시스템을 RESTful 하다라고 한다. 🤔그렇다면 REST의 특징은 무엇일까? 우선 REST의 구성을 먼저 알아보자 REST API는 다음으로 이루어져 있다 자원(RESOURCE) - URI 행위(Verb) - HTTP METHOD 표현(Representations) 🤔REST의 특징 1) Uniform(유니폼 인터페이스) URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일 2)Stateless(.. 2022. 12. 25. [개념쌓기]CSMA/CD? CSMA/CA? cs를 공부하던 중 CSMA/CD와 CSMA/CA 내용이 나왔다. CS스터디 교재가 범위가 넓어, 내용을 압축해 넣다보니 궁금한 것들이 일부 해결되지 않아 조금 더 자세히 알아봤다. 제일 많이 보이는 것들이 CSMA/CD, CSMA/CA이지만 CSMA가 무엇인지 궁금했다. ✅CSMA가 무엇일까? CSMA(Carrier Sense Multiple Access, 반송파 감지 다중 접속) : 각 노드들이 프레임을 전송하기 위해 공유 매체(반송파)에 접근하기 전에 매체가 사용중인지 확인(Carrier Sensing)하며 다중접속(Multiple Access)하는 방식 ✅CSMA/CD가 무엇일까? : LAN의 통신 프로토콜의 종류 중 하나이며, 이더넷 환경에서 사용한다 : 매체 엑세스 제어 방식이며,각 단말이 신.. 2022. 10. 25. [개념쌓기]Spring, 왜 쓰는걸까? 그 많은 것들 중에 왜 스프링일까 자바 강국 한국, 종종 다들 너무 당연하게 여겨서 의문조차 품지 않는다. 나조차도 여지껏 사용하다가 왜 쓰는 지를 이제야 자신에게 되묻는다. - 기존 쓰던 프레임워크를 두고 다른 프레임워크를 사용하기엔 부담이 크다 - 그동안 쌓인 래퍼런스가 많다 등이 있을 것이다. 라는 내 생각보단 대표적인 이유는 "전자정부 표준프레임워크"이기 때문인 듯하다. 진짜 잠깐만 짚고 넘어가자. 프레임워크(Framework)란 무엇일까? 단어 그대로 뼈대나 근간을 이루는 코드들의 묶음이다. 즉, 소프트웨어의 구체적인 부분에 해당하는 설계,구현을 재사용이 가능하게해 일련의 협업화된 형태로 클래스들을 제공하는 것이다. 요약하면 기본 흐름이나 구조를 정하는 것이 프레임워크다. 1. POJO기반 구성.. 2022. 10. 14. [개념쌓기]@Transactional 다시보자 항해99 최종프로젝트에서 승선을 마친 뒤, 벌써 배에서 내리기까지 약 2주 조금 넘게 남긴 상황이다. 현 프로젝트에서 게시글 수정 서비스쪽에 트랜잭션을 걸어서인지 지속적으로 조회 수가 카운트되어 Transactional에 대해 한번 더 공부하는 계기가 되었다. https://veganwithbacon.tistory.com/27?category=1033099 [개념쌓기] @Transactional 야자반에서 @Transactional 에 관해 듣게 되다보니 모르는 내용도 많고, @Transactional이 작동하지 않는 경우도 알게되어 확실히 정리해두고자 블로그에 정리하게 되었다. @Transactional - transaction을 사용 veganwithbacon.tistory.com 이전에 정리해놨던 .. 2022. 10. 1. [개념쌓기] Split-Brain? ES(ElasticSearch)관련 개념을 볼때마다 Split-Brain(뇌분할)이 나오길래 뭔지 궁금해서 우선적으로 알아보게 되었다. Split-Brain 을 먼저 말하기 전에 마스터 노드에 대해서 Elasticsearch 뿐만 아니라 클러스터로 작동하는 모든 서비스들은 공통적으로 마스터 후보 노드를 홀수개로, 그리고 최소 살아있어야 하는 노드 수를 n/2+1로 설정하라고 권장한다. 왜일까? ElasticSearch에서는 장애시 즉시 복구를 위해 마스터 노드를 멀티로 구성한다 마스터 노드는 이중 1개가 선출되어 사용되는데 선출된 노드가 에러가 생길 시에 후보군 중 다른 마스터노드가 이것을 대체하는 역할을 수행하는 것이다. 이를 위해 멀티로 된 마스터노드는 서로 간 health check가 되어야하고 데.. 2022. 9. 22. 이전 1 ··· 3 4 5 6 7 8 9 다음 반응형