이번주는 시험기간이어서 자율 학습 기간이다. 평소에 헷갈렸던 어노테이션에 대해 작성할 예정이다. 어노테이션이란? 주석이라는 의미로, 특별한 의미, 기능을 수행하도록 하는 기술이다. " 프로그램에 추가적인 정보를 제공해주는 메타데이터" 어노테이션이 하는 역할 컴파일러에게 코드 작성, 문법 에러를 체크하도록 정보 제공 소프트웨어 개발 툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공 실행시 특정 기능을 실행하도록 정보 제공 스프링 어노테이션 @SpringBootApplication @Configuration + @EnableAutoConfiguration + @ComponentScan @Configuration 클래스에 적용하고 @Bean을 해당 Class의 method에 적용하면 @Autow..
페이지네이션 많은 양의 데이터를 어떻게 노출할 것인가? 다음 페이지(게시판 번호) vs 스크롤 페이지네이션 구현 - 오프셋 기반 ✅ 3번,4번 데이터 찾아가는동안 DB는 1번,2번 데이터 스캔 ✅ 마지막 페이지를 구하기 위해 전체 갯수 알아야함 sort properties: 필드 (id정렬, 이름정렬) direction : 오름차순, 내림차순 정렬 오프셋 기반 페이징 구현의 문제 마지막 페이지를 구하기 위해 전체 갯수를 알아야함 => 부하 발생 가능 반환하는 데이터 2개를 읽기위해 4개의 데이터를 읽고 버림 커서 기반 페이징 키를 기준으로 데이터 탐색범위를 최소화 전체 데이터를 조회하지않기때문에 게시판 조회 UI 구현이 어려움 중복 데이터 여부 오프셋 기반 페이징: 1페이지 보고있다가 2페이지로 넘어갈때..
강의 패스트캠퍼스 - [스페셜] 백엔드 개발자를 위한 한 번에 끝내는 대용량 데이터 & 트래픽 처리 초격차 패키지 Online source : https://github.com/koogk7/fastcampus-mysql 강의를 듣고 정리한 글입니다. chapter1, chapter2의 강의 내용은 여기로 -> https://shout-to-my-mae.tistory.com/260 TIL 0417 - 0423 이번주는 시험기간이어서 원하는 강의를 들을 수 있었다. 평소 대용량 트래픽 처리에 관심을 두고 있었는데, 감사하게도 선택 강의 옵션 중에 있었다. 강의 소개 패스트캠퍼스 - [스페셜] 백엔드 shout-to-my-mae.tistory.com MYSQL을 학습하는 이유 데이터베이스 랭킹 1~4위가 모두..
클라우드 인스턴스를 만들고 보안그룹 설정까지 마쳤다고 가정... 배포할 빌드 파일 만들기 ./gradlew clean build /build/libs에 jar 파일이 생긴다. 서버의 특정 포트 응답 확인 tcping IP주소 포트 닫혔을 경우 closed, 열렸을 경우 open으로 뜬다. SSH 접속 ssh -i "~~.pem" 유저이름@IP주소 -p 포트 서버의 특정 포트로 접속하고 싶을때 사용한다. 유저에 대한 비밀번호 설정이 필요하다 pem파일은 서버 접속시 필요하다. pem 파일이 존재하는 경로에서 명령어 사용할 것 그 후 작업 서버에 java 설치 깃허브에 배포할 jar파일을 올림 서버에 git clone 명령어 실행 => 서버에 배포할 jar파일이 존재 실행 (포그라운드) java -jar 스..
Proxy 서버란? (클라이언트-서버-서버) 프록시 서버(영어: proxy server 프록시 서버[*])는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다. 출처: wikipedia 서버 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 뒤에서 볼 수 있는 오페라 서버 랙 서버(영어: server, 문화어: 봉사기)는 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 ko.wikipedia.org 즉 클라이언트 요청시 서버가 바로 요청에 대..
'JAVA의 정석'의 저자 남궁성의 Spring 강의를 듣고 정리하였습니다. source: https://github.com/castello/spring_basic/tree/main GitHub - castello/spring_basic: 남궁성의 스프링 기본 강의 @fastcampus.co.kr 남궁성의 스프링 기본 강의 @fastcampus.co.kr. Contribute to castello/spring_basic development by creating an account on GitHub. github.com loginForm 만들기 id가 asdf이고 비밀번호가 1234이면 홈으로 이동하고, 그렇지않으면 일치하지 않는다는 메세지를 보낸다. 우리는 아이디 기억 기능을 쿠키를 이용하여 구현할 것..
신입 사원 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 256 MB 50652 16970 12407 32.332% 문제 언제나 최고만을 지향하는 굴지의 대기업 진영 주식회사가 신규 사원 채용을 실시한다. 인재 선발 시험은 1차 서류심사와 2차 면접시험으로 이루어진다. 최고만을 지향한다는 기업의 이념에 따라 그들은 최고의 인재들만을 사원으로 선발하고 싶어 한다. 그래서 진영 주식회사는, 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발한다는 원칙을 세웠다. 즉, 어떤 지원자 A의 성적이 다른 어떤 지원자 B의 성적에 비해 서류 심사 결과와 면접 성적이 모두 떨어진다면 A는 결코 선발되지 않는다. 이러한 조건을 만족시키면서, 진..
포도주 시식 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 122379 41592 29986 32.495% 문제 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고민하고 있다. 1부터 n까지의 번호가 붙어 있는 n개의 포도주 잔이 순서대로 테이블 위에 놓여 있고, 각 포도주 잔에 들어..