전체 글 127

서버 성능 최적화

성능 향상을 왜 해야할까? 애플리케이션 로딩 속도가 느리면 사용자의 이탈률이 높다는 조사 결과가 있다. 구글의 설문 자료에 따르면 3초 안에 페이지 로딩이 되지 않으면 53%의 사용자가 떠나고 길어질수록 이탈률이 늘어난다. 성능 향상을 위한 방법은 무엇이 있을까? 캐시(Cache) 사용 캐시란 나중에 요청할 결과를 미리 저장해둔 후 빠르게 서비스 해주는 것을 의미한다. 미리 결과를 저장하고 나중에 요청이 오면 그 요청에 대해서 DB 또는 API를 참조하지 않고 캐시에 접근하여 요청을 처리하게 된다. 애플리케이션의 성능을 최적화하기 위해 캐시를 사용하는 방법을 익히면 전체적인 시스템 성능 향상에 큰 도움이 된다. 대표적인 캐시 도구로는 Redis, Memcached 등이 있다. 캐시 사용 구조 Look A..

Back-end 2023.10.17

ResponseEntity 클래스

ResponseEntity ResponseEntity는 다양한 생성자와 메서드를 가지고 있어 다양한 종류의 응답을 처리할 수 있다. 예를 들어, 'ResponseCntity.ok(body)는 HTTP 상태 코드를 200으로 설정하고, 응답 본문에 body를 설정하는 메서드이다. @RestController public class MyController { @GetMapping("/getSomething") public ResponseEntity getSomething() { String responseString = "This is the response body"; return ResponseEntity.ok(responseString); } } 위의 코드에서 getSomething 메서드는 Respo..

Back-end/Spring 2023.10.17

클라우드 컴퓨팅 & AWS

클라우드 컴퓨팅이란? 클라우드 컴퓨팅은 사용자가 자체 인프라를 관리하고 유지하는 대신 인터넷을 통해 공유 컴퓨팅 리소스에 액세스할 수 있는 IT 서비스 제공 모델이다. 클라우딩 컴퓨터는 스토리지, 컴퓨팅 성능 및 소프트웨어 애플리케이션과 같은 확장 가능한 리소스에 대한 온디맨드 액세스를 가능하게 하여 비용 절감, 민첩성 향상 및 IT 복잡성 감소와 같은 이점을 제공한다. * 온디맨드: 주문형 서비스(소비자가 있는 곳까지 찾아가서 상품과 서비스를 전달하는 것, 이용자의 요구에 따라 상품이나 서비스가 바로 제공되는 것) AWS(Amazon Web Service)란? AWS는 Amazon.com에서 제공하는 클라우드 컴퓨팅 플랫폼을 구성하는 원격 컴퓨팅 서비스(웹 서비스) 모음이다. 컴퓨팅 성능, 스토리지, ..

Back-end 2023.10.17

[코딩테스트 연습] n ^ 2 배열 자르기 - Lv.2

n ^ 2 배열 자르기 [문제] https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] j\i 1 2 3 1 1 2 3 2 2 2 3 3 3 3 3 처음에는 규칙을 찾느라 허덕거렸지만 위의 표를 그린 뒤, 바로 규칙을 찾았다. 더보기 i와 j를 비교해서 더 큰 값을 찾으면 된다! [코드] class Solution { public int[] solution(int n, long left, long right) { int len = (in..

프로그래머스 2023.10.11

어노테이션, HandlerMethodArgumentResolver, DTO

@Target 자바 어노테이션을 정의할 때 사용되는 메타어노테이션 중 하나이다. 메타어노테이션은 다른 어노테이션을 설명하거나 제한하는데 사용된다. 1. ElementType.TYPE: 클래스, 인터페이스, 열거형 등에 적용 가능 2. ElementType.FIELD: 필드에 적용 가능 3. ElementType.METHOD: 메서드에 적용 가능 4. ElementType.PARAMETER: 메서드의 파라미터에 적용 가능 5. ElementType.CONSTRUCTOR: 생성자에 적용 가능 @Retention 어노테이션의 수명을 설정하는데 사용되는 메타어노테이션이다. 어노테이션이 유지(retained)되는 기간을 지정한다. 1. RetentionPolicy.RUNTIME: 어노테이션이 런타임에도 사용 가능..

Back-end/Spring 2023.10.10

[코딩테스트 연습] 다음 큰 숫자 - Lv.2

[문제] 다음 큰 숫자 - Lv.2 https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] 처음 접근했던 방법은 n을 이진수로 변환해서 1의 개수(cnt)를 저장한 뒤, while 반복문을 사용해서 n을 1씩 증가시켜 똑같이 이진수로 변환하고 1의 개수(reCnt)를 저장한 뒤에 cnt와 reCnt가 같을 때, 반복문을 종료하여 정답을 찾았다. 이렇게 코드를 작성했을 때 시간 복잡도는 O(n^2)로 당연히 시간 초과가 날 것으로 예상했다..

프로그래머스 2023.09.26

JPA, Hibernate 에러 -> org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing :

에러 org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : 원인 -> FK로 사용되는 컬럼 값이 없는 상태에서 데이터를 추가하려다 나타난 에러이다. 예를 들어, Character 컬럼이 PK, Exp 컬럼이 FK일 때, PK 데이터를 넣지 않고 FK 데이터를 추가하려고 할 때 발생하는 오류이다. 해결 방법 연관관계 매핑 어노테이션(@OneToOne, @OneToMany, @ManyToOne)을 사용할..

Back-end/Spring 2023.09.25

[코딩테스트 연습] 명예의 전당(1) - Lv.1

명예의 전당 [문제] https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [문제 풀이] List를 사용하여 문제를 해결했다. 기본적으로 List에 값이 추가될 때마다 정렬을 진행해 준다. List에 들어 있는 요소의 개수가 k개 보다 작다면 계속 List에 score 값을 추가해 준다. List에 들어 있는 요소의 개수가 k개 이상일 경우 List의 첫 번째 값과 점수를 비교해서 List에 추가 여부를 결정한다. 최종적으로 반환되는 배열에는 항상..

프로그래머스 2023.08.03

Maven 이란?

Maven은 자바 프로젝트의 빌드를 자동화해주는 빌드 도구이다. Maven은 프로젝트의 전체적인 라이프사이클을 관리하는 도구이다. 프로젝트 POM이라는 개념을 바탕으로 프로젝트의 의존성 관리, 라이브러리관리, 프로젝트 라이프사이클 관리 기능 등을 제공하는 프로젝트 관리 도구이다. 플러그인을 기반으로 소스 코드로부터 배포 가능한 산출물을 만들어내는 빌드 기능을 제공한다. 사용할 라이브러리 이름과 버전만 명시하면 라이브러리를 자동으로 내려받고 관리해 준다. 애플리케이션을 빌드하는 표준화된 방법을 제공한다. 1. settings.xml settings.xml은 Maven tool 자체에 관련된 설정을 담당한다. 2. pom.xml 하나의 자바 프로젝트에 빌드 도구로 Maven을 설정했다면, 프로젝트 최상위 디..

Back-end/Spring 2023.07.31