[Java] Annotation 어노테이션 알아보기, 커스텀 어노테이션 만들어보기
·
Java
요새 하고 있는것중에 직접 커스텀해서 어노테이션을 만들어서 써야할 일이 생겼습니다. 필수는 아니지만 깔끔한 코드를 위해 있으면 좋을것같았어요. 오늘은 이를 위해 공부한 어노테이션의 개념과 동작원리, 그리고 간단한 커스텀 어노테이션을 만들어보겠습니다.1. 어노테이션(Annotation) 개념1) 어노테이션 개념 먼저 어노테이션은 주석이라는 뜻입니다. 실제로 Java에서의 Annotation도 같은 역할을 합니다.일반 // 주석과 @Annotation 의 다른점은 컴파일러가 주석 내용을 추출해 .class 파일 안에 별도의 메타데이터로 새겨둔다는 것 입니다.이렇게 새겨진 정보는 두 군데에서 쓰입니다.컴파일 단계자바 컴파일러가 소스 코드를 바이트코드로 바꿀 때, 소스 코드를 생성하거나 규칙 위반을 잡아냄ex)..
[알고리즘] 약수의 개수, Java 약수의 개수
·
Algorithm
1. 기존 방식1) 개념알고리즘 문제를 풀면서 약수의 개수를 필요로 하는 문제들이 종종 있습니다.저는 원래 다음과 같은 방식으로 문제를 풀곤하였습니다.예시로 36의 약수를 구해보겠습니다. 먼저 약수는 어떤수를 나누어떨어지게 하는 수, 즉 나누었을 때 나머지가 0이되는 수를 말합니다. 예시로 든 36의 약수는 1부터 36까지 있을 수 있습니다.이에 저는 1부터 36까지의 반복문을 돌면서 36을 나누어 떨어지게 하는 수를 구하였고, 9개가 나왔습니다. 2) 함수위의 예시를 통해서 임의의 수 N에 대한 약수의 개수를 구한다고 하였을때, 함수는 다음과 같이 작성할 수 있습니다.// 약수의 개수 구하기static int findDivisor(int N) { int count = 0; for (int i..
[Spring, JPA] @OrderBy로 정렬하기, OneToMany 특정 칼럼 기준 정렬
·
Backend/Spring
일하면서 터진 문제 중, 올려도 될만한 문제들을 포스팅하려고 합니다.제 포스팅은 적용 방법만 보시고, 어떤 상황에 적용할지는 고민을 좀 더 하셨으면 좋겠습니다.취준생일때나 개인 프로젝트 할때 보시면 크게 문제는 안될것같습니다배경 @OneToMany 관계로 매핑된 엔티티를 조회할 때, 정렬 순서가 중요한 요구사항이 생겼습니다.HappyStair Entity는 여러개의 HappyStairTarget을 가지고 있습니다. 즉 OneToMany 관계입니다.HappyStairTarget은 orders라는 칼럼을 가지고 있고 이는 순서를 나타냅니다.항상 이 orders를 기준으로 정렬된 상태로 가지고 와야하는 상황입니다. 처음에는 List을 가져온 뒤 Collections.sort()를 사용하였지만 매번 사용하는것..
[JAVA] 백준 3020 개똥벌레
·
Algorithm/백준
문제링크 : https://www.acmicpc.net/problem/3020 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 이해가 안되서 이것저것 찾아보며 간신히 이해한 문제입니다. 1. 석순(아래), 종유석(위) 두개로 나누어서 배열 만들기 2. 높이별로 카운트를 높여서 누적합 구하기 3. 누적합 한 배열은 인덱스에서 벽을 몇개 부셔야하는지 나타냄 문제풀이 초기 설정을 위와 같이 잡고 문제를 풀었습니다. 석순 = down, 종유석 = up 배열입니다. up 배열은 인덱스가 반대입니다. 그림으로 설명드리겠습니..
서블릿(Servlet)과 서블릿 컨테이너(Servlet Container)
·
Backend/Spring
ServletServlet은 동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이며클라이언트의 요청을 처리하고, 그 결과를 반환하는 역할을 합니다.웹페이지가 동적인 기능을 할 수 있게 도와주는 것입니다. 특징 클라이언트의 Request에 대해 동적으로 작동하는 웹 애플리케이션 컴포넌트 입니다.HTML을 사용하여 Response 합니다.JAVA의 스레드를 이용하여 동작합니다.MVC 패터에서 컨트롤러로 이용됩니다.HTTP 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet클래스를 상속받습니다.UDP 보다 속도가 느립니다.HTML 변경 시 Servlet을 재 컴파일해야하는 단점이 있습니다.Servlet Container서블릿을 담고 관리해주는 컨테이너..