2024/11 28

IntelliJ plugin을 만들어 보자 - method tester (1)

IntelliJ plugin을 만들고 배포해 보자 - method tester (1)(이 내용은 어떤 플러그인을 만들까에 대한 내용이다. 만드는 방식은 이후에 적을 예정이다.)개발을 하면서 프로젝트의 크기가 커지고 기능을 잘 나누어 둔다면 하나의 메서드를 여기저기서 재활용하는 경우가 참 많아지게 된다.그리고 이를 처음에 만들 때에는 잘 만들어 두었고 더이상 변경의 여지가 없을 거라고 생각했는데, 어떠한 이유로 리팩터링을 진행할 수 있다.근데 그렇게 되면 이게 잘 고쳐졌는지, 다른 로직에 이상이 없는지를 바로 테스트하기가 참 애매하다.예를 들어, 다음과 같은 클래스가 있다고 가정해 보자.import org.springframework.stereotype.Component;@Componentpublic cl..

확장성과 성능에 관한 간단한 정리

확장성리스템의 리소스를 늘릴 때 추가된 리소스에 비례해 성능이 향상됨이게 중요한 이유는 확장성은 나중에 생각할 수 없기 때문이다.예를 들어 실제로 확장을 해도 시스템 성능에 부정적인 영향을 주지 않도록 설계되어야 한다.그리고 확장을 했을 때에 시스템이 이질성을 수용할 수 있어야 한다.예를 들면 보통 확장성을 통해 시스템의 리소스는 다양성이 증가하는데, 균일성에 의존하는 알고리즘 증에서 작동하지 않거나 새로운 리소스를 제대로 활용하지 못할 수 있다.Ex) 샤딩 등에서 알고리즘을 어떻게 할 수 있을지 등!!이게 잘 되지 않으면 단일 사용자는 모르겠지만 부하가 높을 때에 느려지게 된다.성능이게 잘 안되면 단일 사용자에 대한 시스템 속도가 느려진다.

이론 정리 2024.11.10

(간략정리) 인텔리제이 플러그인을 만들어 보았다.

나도 개발하면서 느낀게, 하나의 메서드가 여러 곳에서 사용되면 이거를 고쳐도 잘 작동이 되는지...가 약간 애매했다.엄청 많은 곳에서 쓰고, 이거를 테스트한다면 그거를 하나하나 다 테스트하는건 힘들고, 그렇다고 안하면 무섭고... 그래서 플러그인을 하나 만들어봤다. https://github.com/RyooChan/All-Call-Method-Tester GitHub - RyooChan/All-Call-Method-Tester: 해당 메서드가 사용된 모든 Test code 를 한번에 돌릴 수 있게 하는해당 메서드가 사용된 모든 Test code 를 한번에 돌릴 수 있게 하는 플러그인. Contribute to RyooChan/All-Call-Method-Tester development by creati..

기타/일상 2024.11.09

[HackerRank] ctci-array-left-rotation java 풀이

문제 설명1. 배열의 요소들을 왼쪽으로 돌리는거다.2. 그리고 맨 뒤에 애는 오른쪽 끝으로 가는식  풀이 과정 1. 딱히 어려운 문제는 아니지만, 성능에 이슈가 있을 수 있다. 2. 간단하게 말하면 어디까지 가야할지를 확인하고 돌리면 된다. 3. 근데 그거를 매번 돌릴 필요 없고 얼마나 가면 되는지 알면 되는데, 어차피 배열 전체 크기는 정해져 있으니 갈 거리에서 배열크기 나머지를 구하면 이동한 변위가 된다.  public static List rotLeft(List a, int d) { int maxLength = a.size(); d %= maxLength; List ans = new ArrayList(Collections.nCopies(max..

알고리즘 공부 2024.11.08

AI기반 검색엔진 Perplexity pro 나쁘지 않다

요즘 참 AI기반한 뭔가가 많은데, 그 중에서도 일반적으로도 잘 활용될 수 있는 검색엔진 퍼플렉시티에 대해 간략히 알아본다. 사실 알아볼것도 없다. 그냥 검색엔진임.근데 이거 pro를 잠깐 찍먹해봤는데(회사분이 무료 이용 가능 꿀팁을 주셨다.) 활용법 자체가 너무 좋다.개발 시에도 활용할 수 있고 그냥 평소에 나같은 검색 못하는 녀석들한테는 진짜 장난아니게 좋은 느낌이다. 예를 들어 요즘 핫한 흑백요리사(사실 요즘은 전보다는 좀 덜 핫하다. warm 정도?) 레스토랑을 예약을 좀 잘 하고 싶으면 흑백요리사 레스토랑 예약 꿀팁 대충 이렇게 칠 것이다. 아마 나같은 검색 초보는 이럴거다.근데 그러면   대충 이런 식으로 나온다.무슨 정보를 찾아야할지 잘 모르겠다는 느낌이다.그리고 정작 블로그 들어가서 보면 ..

[백준 2225번] 합분해 - java

문제 설명1. 0부터 N까지의 정수 K 개를 더해서 합이 N이 되어야 한다.2. 즉 N번 계산해서 K가 나오도록 풀이 과정 1. 이거 DP이다. 2. DP는 일단 무식하게 풀면서 점화식을 찾아보는 것이 중요하다. 3. 그래서 풀어보면요런 식으로 나온다.한번 계산할 때에는 (0) | (1) | (2) | (3) | (4)두번 계산할 때에는 (00) | (10) (01) | (03) (12) (21) (30) | (04)(13)(22)(31)(40)이런 식으로 간다. 그래서 저거 잘 들여다 보면 점화식이 대충 보인다.val[i][j] = val[i-1][[j] + val[i][j-1]이런 식으로 그래서 일단 전체를 1로 초기화하고 더해가면 된다. 코드import java.util.*;public class ..

알고리즘 공부 2024.11.04

java Integer에서 == 비교를 한다면?

Java 에서 Integer 타입을 쓰는 경우가 은근 많다.사실 실제로 업무를 할 때에는 nullable 하지 않은 경우는 int를 사용하라고 하지만(Primitive type) 아마 null safe를 위해 이걸 쓰는 경우도 있을 것이다.근데 요거 == 비교를 하면 골때릴때가 있다.public class Main { public static void main(String[] args) { Integer a = 1; Integer b = 1; System.out.println("compare 1 : " + (a == b)); a = 127; b = 127; System.out.println("compare 127 : " + (a == b)); ..

이론 정리/java 2024.11.03