1) 문제 설명 다음은 식당의 정보를 담은 REST_INFO 테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블입니다. REST_INFO 테이블은 다음과 같으며 REST_ID, REST_NAME, FOOD_TYPE, VIEWS, FAVORITES, PARKING_LOT, ADDRESS, TEL은 식당 ID, 식당 이름, 음식 종류, 조회수, 즐겨찾기수, 주차장 유무, 주소, 전화번호를 의미합니다. Column name Type Nullable REST_ID VARCHAR(5) FALSE REST_NAME VARCHAR(50) FALSE FOOD_TYPE VARCHAR(20) TRUE VIEWS NUMBER TRUE FAVORITES NUMBER TRUE PARKING_LOT VARCHAR(1)..
전체
1) 개요 오늘은 1/31일에 진행된 김영한님 온라인 밋업에서 나온 Q&A를 제 개인적인 생각과 함께 정리해보는 시간을 가지게 되었습니다. 관련된 내용은 인프런에서 강의로 들으실 수 있습니다. 2) Q & A (1) 개발자의 역량 JPA의 미래 오래된 기술인만큼, 기술적으로 완성되어 있기 때문에 성능 업데이트 외에 크게 바뀌는 부분이 없다. RDB와 함께하는 만큼, RDB가 망하지 않는 이상 꾸준히 사용될 것이다. 국내 개발자들의 경쟁력 대용량 트래픽을 처리하는데 있어서는 국내가 오히려 뛰어나며, 장애에 대한 대응도 빠르다. 다만, 해외의 경우 국내와 달리 문서화가 굉장히 잘 되어 있다. 기술적인 레벨에서는 국내 또한 상향 평준화가 되었기 때문에 언어적인 측면이 해결된다면 해외로의 도전도 승산이 있다. ..
1) HTTP 프로토콜 (1) 정의 HTTP는 HyperText Transfer Protocol의 약자로 인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다. OSI 7 Layer에서 Application 레벨의 프로토콜로 TCP/IP 위에서 작동하며 어떠한 종류의 데이터든지 전송할 수 있도록 설계되었다. 예를 들어, 사용자는 웹 브라우저에서 HTTP 프로토콜을 통해 웹 서버에서 HTML 문서, 이미지, 동영상, JSON 데이터 등을 주고 받는다. (2) 특징 ① 비연결성 (Connectionless) HTTP는 먼저 클라이언트가 서버에 요청을 보내면, 서버는 클라이언트에게 요청에 맞는 응답을 보내고 TCP/IP 연결을 끊는 특성이다. ② 무상태 (Stateless) TCP..
1) 정적 웹 페이지와 동적 웹 페이지 인터넷을 이용하면서 접속하게 되는 웹 페이지는 크게 두 가지로 나뉘는데, 저장된 HTML 파일을 그대로 보는 정적 웹 페이지와 서버측 스크립트나 데이터베이스와 상호작용하여 컨텐츠를 동적으로 생성하는 동적 웹 페이지가 있다. (1) 정적 웹 페이지 (Static Web Page) 웹 서버에 이미 저장된 파일 (HTML 파일, CSS 파일, 이미지 파일, JavaScript 파일 등)을 클라이언트에게 전송하는 웹 페이지이다. 사용자는 서버에 저장된 데이터가 변경되지 않는 한 고정된 웹 페이지를 계속 보게 된다. 즉, 모든 사용자는 같은 결과의 웹 페이지를 서버에 요청하고 응답 받게 된다. (2) 동적 웹 페이지 (Dynamic Web Page) 서버에 저장된 HTML ..
1) MiniO API를 이용한 CRUD 실습 (Java) (1) Connection (연결) MinioClient minioClient = MinioClient.builder().endpoint(endPoint) .credentials(accessKey, "secretKey) .build(); endPoint는 miniO 서버의 IP와 포트 주소를 기입하고 accessKey, secretKey는 대시보드에서 발급받자! (2) Check Bucket Exist (버킷 체크) boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket("test").build()); if (found) { System.out.println("존재")..
1) MiniO 설치 (배포) (1) 지원 환경 MiniO는 Windows, Mac, Linux, FreeBSE, Docker 환경에서 사용이 가능하다. Linux 지원 사양에 따른 URL 링크 64-bit Intel/AMD https://dl.min.io/server/minio/release/linux-amd64/minio 64-bit ARM https://dl.min.io/server/minio/release/linux-arm64/minio 64-bit PowerPC LE (ppc64le) https://dl.min.io/server/minio/release/linux-ppc64le/minio IBM Z-Series (S390X) https://dl.min.io/server/minio/release/..
1) Minio (Minimal Object Storage) (1) Minio란 MiniO는 오픈 소스로 제공되는 분산 스토리지 솔루션이다. 파일 스토리지, 블록 스토리지를 지원하지 않고 오로지 오브젝트 스토리지 형태로 제공되며 Amazon S3 클라우드 스토리지 서비스와 완벽하게 호환되기 때문에 Amazon S3의 SDK를 사용할 수 있다. 오브젝트 스토리지를 사용하고 있기 때문에 파일에 대한 직접적인 수정은 불가능하며, 항상 덮어쓰는 (Overwrite) 방식이 사용된다. (2) MiniO 주요 특징 ① AWS S3 API 호환 MiniO는 AWS S3의 API를 완벽하게 똑같이 구현하여 100% 호환되기 때문에 MiniO를 스토리지로 사용하다 S3 스토리지로 마이그레이션 하더라도 애플리케이션 코드를..
1) Git Flow란 Git Flow는 Git으로 형상 관리를 할 때, 브랜치를 효율적으로 관리하기 위해 사용하는 브랜치 관리 전략이다. (Branch Management Strategy) 2) Git Flow를 사용하는 이유 프로젝트 규모가 작거나 혼자서 개발을 하는 경우에는 굳이 브랜치를 만들 필요 없이 Main 브랜치에서 작업해도 상관이 없다. 다만 프로젝트 규모가 커지거나 팀 단위로 개발이 이루어지는 상황에서 별도의 브랜치 관리 전략 없이 개발을 진행하게 되면 무분별하게 브랜치를 생성하게 되어 잦은 충돌로 인해 생산성이 떨어지게 되고 협업이 원활하지 않게 된다. 즉, Git Flow를 사용하는 이유는 Git을 효과적으로 활용하여 프로젝트 관리와 협업을 개선하고 팀의 생산성을 높이며 소프트 웨어 ..