본 내용은 real MySQL 책을 참조하여 쓰여졌습니다! 1. 실행 순서 일반적으로 INSERT와 UPDATE는 레코드 단위로 이루어지므로 성능상 문제가 되는 경우는 별로 없습니다. 하지만 SELECT는 여러개의 테이블로부터 데이터를 조합해서 빠르게 가져와야 하기 때문에 여러 개의 테이블을 어떻게 읽을 것인가에 많은 주의를 기울여야 합니다. SELECT s.emp_no, COUNT(DISTINCT e.first_name) AS cntFROM salaries sINNER JOIN employees e ON e.emp_no = s.emp_noWHERE s.emp_no IN (100001, 100002)GROUP BY s.emp_noHAVING AVG(s.salary) > 100ORDER BY AVG(s.s..
1. 들어가며 김영한님의 강의에서 가장 실전적인 파트를 맡고 있는 강의인 "실전! 스프링 부트와 JPA 활용 1, 2편을 듣고"를 요약하고자 합니다. 1편의 경우 Spring 프로젝트 경험이 있다면, 그리고 성공적으로 수행해냈다면 생략해도 될 것 같습니다. 저도 요약에 있어서 굳이 둘을 나눌 필요는 없을 것 같아 하나로 합쳐서 정리하고자 합니다 :) 2. 엔티티 클래스 개발 Entity는 Database의 Model에 해당되는 부분입니다. 하지만 저희는 JPA를 활용하여 '객체지향적'으로 데이터베이스를 활용하고자 합니다. 따라서 data structure처럼 Table을 Entity로 정의하고 Getter와 Setter를 모두 정의하여 사용하기보단 별도의 메서드를 정의하여 객체처럼 다루는 것이 이상적입니..
1. 들어가며 게임을 만들며 게임 서버가 필요한 로직이 들어간다면 Photon, 프라우드넷 등 다양한 네트워크 엔진을 고려하게 됩니다. 모두 유용한 도구이고 특히 프라우드넷의 경우 마비노기 영웅전과 같은 대규모 온라인 게임에도 사용되었다는 점에서 검증은 충분히 된 편이라고 생각합니다. 저의 경우 Photon library를 과거 프로젝트에서 활용했었는데 사용하기 꽤 직관적인 편이었습니다. 하지만 보다 근본적으로 게임 서버 프로그래밍을 하고자 한다면 소켓 프로그래밍을 피할 수는 없습니다. 기존 웹 서버에서 사용하는 프레임워크와 서버를 얹어서 구축하기엔 실시간 게임에 사용하기에 성능이 현저히 부족할 수 밖에 없습니다.또한 웹에서도 요즘 Spring Web flux 등 비동기 프레임워크를 사용하거나 gRPC,..
들어가며 많은 장을 뛰어넘어 7장입니다. 4에서 5장의 경우 3장에서 요구사항을 보고 열심히 노력했다면 그다지 할 것이 많은 파트는 아닙니다. 해당 3장에서 정답을 알려주는 파트에 가깝기 때문입니다. 6장의 경우엔 이미 김영한님의 Spring MVC1을 수강하셨다면 익숙한 부분이라 따로 정리하지 않았습니다. 3장 ~ 6장에서 만들었던 서버는 클라이언트에게 http request를 받아 그에 따른 response를 내려주는 것에 집중했습니다. 하지만 대부분의 서버는 해당 요청에 따라 Database에 여러 데이터를 저장하고 관리합니다. (6장까지의 서버는 간단한 구현을 위해 HashMap을 통해 user 테이블을 관리하고 있습니다.) 7장에서는 회원 데이터를 DB에 저장하는 실습을 하게 됩니다. 이때 3장..
기초적인 웹 서버 프레임워크 만들기 이번 실습에서는 프레임워크 없이 java의 기본적인 라이브러리로 이루어진 웹 서버를 바탕으로 책의 요구사항을 만들어보게 됩니다. 아무것도 없는 환경에서 하나씩 기능구현을 해보면서 자연스럽게 웹 프레임워크 혹은 java 웹 표준 기술들이 왜 필요하게 되었는지 느끼게 됩니다. 결국 여러 기능을 구현하다보면 자연스럽게 공통 처리 로직을 묶어서 관리하게 되는데 이게 프레임워크의 가장 기초 뼈대로 수렴하기 때문입니다! 요구사항 1 - http://localhost:8080/index.html로 접속시 응답 요구사항 2 - get 방식으로 회원가입 요구사항 3 - post 방식으로 회원가입 요구사항 4 - redirect 방식으로 이동 요구사항 5 - cookie 요구사항 6 -..
들어가며 https://rawshrimpsushi.tistory.com/30 자바 웹 프로그래밍 next-step을 읽고 1. 들어가며 실전적으로 리팩토링, OOP에 맞는 코드를 짜보는 경험을 하게 해주는 책은 흔치 않습니다. 이론적으로 객체지향을 접근하거나 여러 디자인 패턴들을 소개시켜주면서 코드를 짜는 책 rawshrimpsushi.tistory.com 위 글에서 작년 Best 책으로 꼽았던 자바 웹 프로그래밍 Next-step을 단원 별로 정리하겠다고 했는데 그 일환입니다. :) 모든 단원을 정리하지는 않을 예정이고 실습하면서 인상깊고 꼭 기록에 남기고 싶었던 단원들만 위주로 기록할 예정입니다. 2장 - 문자열 계산기 구현 뒤에 불지옥 리팩토링...이 기다리고 있는 것에 비해 정말 부드러운 내용으로..