분류 전체보기

· JAVA
어노테이션의 용도 어노테이션은 다음 세 가지 용도로 사용된다. 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공한다. 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공한다. 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공한다. 어노테이션을 정의하는 방법 어노테이션 기본 정의 public @interface AnnotationName { } 이렇게 정의한 어노테이션은 코드에서 다음과 같이 사용한다. @AnnotationName 어노테이션은 엘리먼트(element)를 멤버로 가질 수 있다. 각 엘리먼트는 타입과 이름으로 구성되며, 디폴트 값을 가질 수 있다. 엘리먼트의 타입은 원시 타입, String, 열거 타입, Class 타입, 그리고 이들의 배열 타입을 사..
· JAVA
자바의 예외 자바에는 에러(Error)와 예외(Exception)가 있다. 에러는 하드웨어의 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것이고 개발자는 에러에 대처할 방법이 전혀 없다. 반면에 예외는 사용자의 잘못된 조작 또는 잘못된 코딩으로 발생하는 프로그램 오류이다. 예외가 발생하여 적절히 대처하지 않으면 프로그램이 비정상적으로 종료된다는 점은 둘이 비슷하다. 그러나 예외는 개발자가 예외 처리(Exception Handling)를 통해 대처할 수 있다. 예외에는 크게 일반 예외(Exception)와 실행 예외(Runtime Exception)가 있다. 일반 예외는 컴파일 과정에서 예외 처리가 필요한지 확인하고 예외 처리 코드가 있는지 확인한다. 만약 예외 처리 코드가 없다면 컴파일 ..
[주간 모의 코테 1주차 후기] 오늘은 3시간을 목표로 카카오 2022 양궁대회, 양과 늑대 외 한 문제까지 총 세 문제를 풀고자 했다. 양궁대회는 처음에 떠올린 완전 탐색이라는 아이디어로 1시간 35분 동안 풀었으며, 25개 케이스에서 2개 케이스만 틀리는 나쁘지 않은 점수를 얻을 수 있었다. (하지만 그 두 개의 케이스가 killer case인 듯했다) 아직도 직감에 의존해서 시간 복잡도를 분석하려고 하는데, 정확하게 시간 복잡도를 구하는 연습이 필요할 것 같다. 익숙해지자. 이후 양과 늑대 문제를 푸는데 적절한 알고리즘을 적용하지 못했다. 풀이가 진행될수록 난잡해졌으며, 명확한 알고리즘 선정의 부재라는 문제점이 눈에 보였다. 결국 풀지 못하고 다른 사람들의 접근법을 참고하였고 스스로 풀이를 작성해보..
· Spring
구글링 했을 때 생각보다 정확한 정보가 없길래 글을 작성하게 되었다. PresignedURL을 발급받기 위해서 다음과 같은 과정이 필요하다. AWS S3 버킷 생성 버킷 정책 설정 PresignedURL을 발급받을 IAM 생성 코드 작성 1. AWS S3 버킷 생성 AWS S3 서비스 탭으로 이동해서 버킷 생성하기를 수행하자. 버킷 이름만 잘 짓고 다른 모든 설정은 건들 필요가 없다. 그러나 이 부분은 선택 사항인데, 나의 경우 개발하는 프로젝트에서 프로필 사진을 업로드하면 해당 사진의 공개 URL을 통해서 누구나 접근할 수 있어야 하기 때문에 버킷에 대한 퍼블릭 액세스를 모두 허용해주었다. 생성하면 다음과 같이 보일 것이다. 2. 버킷 정책 설정 생성한 버킷의 세부 정책을 설정하자. (버킷 클릭 -> ..
· JPA
N + 1 문제가 어떻게 발생하고 이를 해결하기 위해서 JOIN이 아닌 Fetch JOIN을 사용하는 이유를 코드 레벨에서 살펴보자. JOIN 먼저 모든 테스트를 수행하기 전에 Member와 Team이 N : 1 양방향 관계를 맺고 Member가 두 명씩 들어가 있는 팀을 3개 만들 것이다. // 모든 테스트 수행 전에 단 한 번만 수행한다. @Transactional @BeforeAll void beforeAll() { for(int i = 0; i < 3; i++) { Member member1 = Member.builder().name("tester" + i).grade(Grade.VIP).build(); Member member2 = Member.builder().name("tester" + (i..
· Spring
여러 원인이 있을 수 있다. 일단 나의 경우 다른 테이블은 정상적으로 생성되는데 Meeting 테이블이 생성되지 않는 문제였다. 오류는 command 실행 오류이고 쿼리에 문제가 있는 것이었다. 스택오버플로우를 돌아다니다가 한 답변에서 힌트를 얻을 수 있었다. postgreSQL의 예약어를 사용하여 문제가 발생했다는 답변이다. 보자마자 내 Meeting 테이블에 limit이라는 필드가 떠올랐고 MySQL에 Reserved keyword를 확인했다. (컨트롤 + F로 검색하면 편함) https://dev.mysql.com/doc/refman/8.0/en/keywords.html MySQL :: MySQL 8.0 Reference Manual :: 9.3 Keywords and Reserved Words 9..
@xftg77g
'분류 전체보기' 카테고리의 글 목록 (9 Page)