Software Backend/Java & Spring

    자바 new, StringBuilder 메모리 사용량 테스트

    개요 자바 for loop에서 new와 StringBuilder를 사용했을 때 메모리 사용량 차이가 얼마나 날까? 위 사항에 대해 궁금해서 Runtime()을 이용해 테스트 해봤으며 테스트 조건과 코드는 다음과 같다 조건 1 : StringBuilder 사용해서 append와 delete 반복 public void builderTest(){ StringBuilder example = new StringBuilder(); for(int i = 0; i < 10000; i++){ example.append("- "); } String[] data = example.toString().split(" "); int len = data.length; Runtime run = Runtime.getRuntime();..

    자바 기초 다지기 - 3 (API, Object, 추상, final, Enum, 예외, String)

    자바에서 API란? API (Application Programming Interface ) 애플리케이션에 선언되어 있는 클래스와 메소드에 대한 상세한 설명이 포함된 문서 문서를 자동으로 생성하는 명령어 : javadoc API 왼쪽 위에 제공하는 창 : 패키지 목록 API 왼쪽 아래 제공하는 창 : 클래스 목록 API 우측 본문 : 상세설명 Deprecatied : 더이상 사용하지 않는 레거시 BigDecimal 숫자를 정밀하게 저장,표현하는 클래스 생성자 : 16개 abs() : 절대값 표현 subtract : 빼기 구현 dvide : 나눗셈 모든 자바 클래스의 부모 클래스는 Object다( java.lang.Object ) 모든 클래스는 아무 상속을 받지 않았을 때 자동으로 Object 클래스를 자..

    에러, error Type referred to is not an annotation type: LogExecutionTime

    문제 annotation type Error 발생 Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'healthEndpointGroupsBeanPostProcessor' defined in class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]: BeanPostProcessor before instantiation ..

    자바 기초 다지기 - 2 (조건문, 반복문, 배열, 참조자료형, DTO, 상속, 오버라이딩, 오버로딩, 다형성)

    조건문 조건문은 연산자를 통해 boolean을 도출해내고 참/거짓으로 실행 여부를 결정한다. if if( boolean1 ) { // 만약 boolean1을 연산한 결과가 true이면 중괄호 내용을 실행해라... 중괄호 내용; } else if( boolean2 ) { // 만약 boolean1이 false이고 // boolean2를 연산한 결과가 true이면 중괄호 내용을 실행해라... 중괄호 내용; } else { // 위의 모든 조건이 false일 경우 실행해라... 중괄호 내용; } switch 비교 대상 변수가 주어졌을 때, case와 비교하여 같은 경우 처리 문장이 실행된다. break가 없을 경우 다음 case가 이어서 실행되기 때문에 break를 작성해주어야 한다. default는 case..

    자바 기초 다지기 - 1 (클래스, 메소드, 변수, 컴파일, 연산자)

    자바의 단위 Class : 행동과 상태의 집합 Method : Class 안에서 행위(기능)를 구현하는 것을 담당한다 Variable : 변수, 변하는 수라는 의미가 있으며 데이터를 임의의 변수에 저장하여 사용한다 기본적인 선언 구조 public class TestClass{ // ← 클래스 선언 ( 대문자로 작성 ) public String method(){ // ← 메소드 선언 ( 카멜케이스로 작성 ) String data = ""; // ← 변수 선언 // 중간 내용 return data; } } 이러한 자바의 클래스, 메서드를 구동하기 위해서는 프로그램상 어느 한 곳에는 main() 메서드가 선언되어 있어야 구동이 가능하다. public static void main(String[] args){ ..

    에러, Cannot resolve org.olap4j:olap4j:0.9.7.309-JS-3

    에러, Cannot resolve org.olap4j:olap4j:0.9.7.309-JS-3

    문제 Cannot resolve org.olap4j:olap4j:0.9.7.309-JS-3 Git clone 후 실행 해보았으나 위 에러 발생 olap4j는 무엇인가? Olap4j는 Java 환경에서 OLAP 데이터베이스에 연결하고 해당 메타데이터를 쿼리하고 MDX 쿼리를 실행할 수 있는 API입니다. Java 프로그래머가 다른 공급업체의 OLAP 서버에 연결할 수 있도록 한 최초의 Java API입니다. 해당 프로젝트를 사용하고 있던 기존 사용자는 잘 되는데 Git clone해서 사용하면 에러발생.....? 정확한 이유는 모르겠다, 버전 문제일거라 예상은 되나, 우선 해결법은 아래와 같다 해결방법 1. olap4j가 없다고 나왔으니 olap4j의 버전을 보고 더 높은 버전의 dependency를 추가하..

    oEmbed를 통한 최신 정보 유지한 채 컨텐츠(동영상,사진 등) 공유하는 방법

    oEmbed를 통한 최신 정보 유지한 채 컨텐츠(동영상,사진 등) 공유하는 방법

    oEmbed란? oEmbed를 사용하면 공유하고자 하는 컨텐츠(동영상, 사진) 등등의 최신 세팅 정보를 자동으로 반환 받아 사용함으로써 수동으로 설정없이 계속해서 공유가 가능하다. ex) width: 150px 이었는데 width: 100px로 변경 ex) description : 닭가슴살 맛있게 삶는법 -> 닭가슴살 맛있게 삶는 꿀팁 추가적으로 예를들어 유튜브 영상을 친구들에게 공유하고 싶다면 링크를 올리거나 태그로 이루어진 소스 코드를 넣어줘야 하는데 SNS 보안상 태그 입력을 허용하지 않는다 이를 해결하고자 한다면 유튜브 영상의 ID 값을 주소에서 파싱하여 유튜브에서 제공하는 소스코드 양식에 맞게 태그를 작성하면 사용이 가능하다 다만, 이런 방식은 좋지 않다. 소스코드의 양식은 언제든 바뀔 수 있다..

    에러, java java.lang.IndexOutOfBoundsException

    문제 java.lang.IndexOutOfBoundsException:SEVERE: 경로 [/sshj]의 컨텍스트 내의 서블릿 [appServlet]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is java.lang.IndexOutOfBoundsException: Index: 1, Size: 0]을(를) 발생시켰습니다. 위와 같은 에러가 발생했다. 배열을 사용하는 도중, index 관련해서 에러가 발생한 것이다. 구글에 검색해보니 주로 배열에서 범위를 잘못 정해줄때 발생한다고 적혀있더라. if(req.getParameter("selectBtnCheck").equals(..