컬렉션 (1대N 관계에서) Fetch Join은 뻥튀기 조회를 함아래 그림에서 보면 팀A에 속한 멤버들(Collection)을 조회하기 위 구문을 날리면 같은 팀A가 회원수만큼 조회됨.JPQL의 distinct 사용하여 팀 A 결과값으 중복을 제거할 수 있음이 방식을
연관관계 엔티티를 프록시로 조회하도록 하고, 프록시 객체의 실제 속성을 이용하기 위해 메소드를 호출할 때 쿼리를 날려 실제 값을 조회하여 객체를 생성하는 것객체 자체만 호출했을 때는 쿼리를 날리지 않고 프록시 객체를 반환함객체의 속성을 조회하는 메소드를 실행하면 그때
양방향 연관관계란 연관관계가 있는 두 엔티티 간에 양쪽 방향에서 모두 객체 탐색이 가능하도록 연관관계를 설정하는 것을 말함회원-팀 엔티티가 있을 때, 회원 객체가 팀 필드를 가지고 있어 회원 객체로부터 팀을 조회할 수 있고, 팀 객체가 회원 필드를 가지고 있어 팀 객체
기업 면접에서 가장 인상 깊은 프로젝트로 실시간 주문 및 결제 기능 구현을 말했다가 아래의 관련 질문에 제대로 답을 하지 못 했다. 주문테이블의 PK는 어떻게 관리했는지? 주문의 트랜잭션 처리는 어떻게 했는지? 스프링에서 트랜잭션이 동작하는 원리는 무엇인
"아파트명으로 검색" 기능은 검색어로 입력한 아파트 이름을 가지고 있는 전국 아파트 거래 데이터를 조회하여, 가장 최근 거래 데이터 정보를 반환하여 지도 상에 마커로 표시해주는 기능임기존 API는 Mybatis 환경에서 다음의 쿼리를 수행함문제점은 가장 최근 거래 정보
한 사이트에서 주소가 다른 서버로 요청을 보낼 때 발생하는 오류브라우저(프론트엔드)에서 외부 사이트로의 요청을 막는다왜 있는가착한 닷컴 접속 후 로그인 -> 로그인 유지(아이디, 비번) 위한 토큰 정보 저장 -> 사이트에서 쿠키 보고 로그인 유지 가능 판단 , 즉 인증
1.setter를 지양해야 하는 이유의도 불명확: setter라는 메소드 이름만으로 그 값을 왜 변경하는지 명확히 알 수가 없다. 내가 짠 코드를 나중에 다시 보거나, 다른 개발자가 본다고 했을 때 어떤 하나의 서비스 로직 메소드 내에 setter가 사용되고 있다고 하
각각의 호스트의 IP주소는 기억하기 어려우므로, IP주소를 대신하는 Domain Name을 두어 쉽게 접속할 수 있도록 하는 체계한 서버를 두고, 해당 서버에 각 도메인의 IP주소를 질의할 수 있겠지만, 실제로 이렇게 구현하지는 않는다. 도메인 목록의 크기가 크며, 검
지금까지는 요청-응답-요청이 순차적으로 하나씩 진행되는 전송 방식에 대해서 다뤘음 하지만 현실에서 이 방식을 이용하기에는 너무 느리다. 따라서 pipeline에 보낼 packet을 한 꺼번에 쏟아내는 느낌으로 왕창 packet을 전송한다. 그래야 utilization을
Mybatis는 JDBC를 이용한 DB 접근을 자동화하고, XML 파일을 이용해 쉽게 쿼리문을 작성할 수 있으며, connection을 쉽게 관리하도록 도와주는 Framework.Mapper 클래스와 XML 파일을 연결하는 설정이 필요하며, 이외에 쿼리 실행결과를 DT
이 내용은 우아한 테크 유튜브 채널 "10분 테코톡 🏀 에어의 Spring vs Spring Boot"를 정리한 내용입니다.주소: https://www.youtube.com/watch?v=Y11h-NUmNXISpring의 생태계는 거대함. Spring Fra
RESTRepresentational State TransferRest가 어떤 계기로 나왔는가?WEB(1991) - 팀 버너스리Q. 어떻게 인터넷에서 정보를 공유할 것인가?A. 정보들을 하이퍼텍스트로 연결한다. (표현형식 HTML, 식별자 URL, 전송방법 HTTP )
Spring은 느슨한 결합과 인터페이스를 활용..필요한 객체를 생성하고, 이 객체가 수정되거나 혹은 다른 형태의 객체로 변경됐을 때, 생성-할당 코드를 모두 수정하는 것이 아니라 Spring이 자동으로 변경된 코드를 주입해서 동작하게 만들어 준다. 이렇게 자동으로 주입
Servlet은 Java Class 중 하나로 서버 측에서 웹 요청을 처리하고 응답을 생성하게 하는 class이다. WAS에서 컨트롤러 역할을 담당한다.Servlet은 Java 코드 안에 HTML 코드를 생성할 수 있어서 Java 코드를 통한 Business Logic
TCP가 지원하는 reliable은 어떻게 보장될 수 있을까?사실 Network layer 이하 계층은 unreliable하다. 물리적인 문제, 시스템 문제 등으로 인하여 데이터의 loss나 error가 발생할 수 있다.지금부터 데이터의 loss or error가 발생
사용자 or 개발자는 O.S를 건드리지 않고 프로세스간 통신을 위해 OS가 제공하는 API인 Socket을 사용하여 통신한다Transport layer는 이를 지원하며, TCP or UDP 방식의 Socket이 있다.Socket 자료구조체에는 socket()-소켓생성,
어플리케이션은 network-core에서 동작하는 것에 대한 코드는 작성할 필요가 없음. 이것은 application 아래 영역에서 알아서 진행함어플리케이션은 아래 4가지 작업이 필요data integrity(no loss): packet 유실 방지, TCP가 지원해줌
네트워크는 edge와 core로 구분 가능client & server 모델의 각 주체는 edge이들을 연결해주는 link 계층의 router는 coreedge의 통신 방식connection oriented servicereliable, in-order byte stre
MySQL 서버 설치root 계정으로 접속Backend에서 사용할 계정 생성데이터 베이스 생성 후 권한 허용MySQL 설정 파일 열기외부에서 접속 허용하기 위해 bind-address 값을 0.0.0.0으로 변경MySQL 재실행EC2의 인바운드 규칙에서 MySQL PO
이전에 진행했던 팀프로젝트를 다시 리팩토링 + 확장하기 위해서 서버 배포를 먼저 하기로 했다.기존에는 공급 받은 AWS 서버 주소와 pem키를 가지고 바로 필요한 것들을 설치하면 됐지만, 이번에는 EC2 생성부터 시작해야 한다.벨로그 글을 참고해서 인스턴스 설정을 하던