본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ

IT기술/JAVA71

[JAVA] 상속 (Inheritance), extends와 implements 개발에서 상속이라는 용어가 있다. 부는 되물림 되고, 이어지는걸 당연시하는듯 공교롭게도 상속이란 단어가 사용되는데, 부에서 사용하는 상속과는 다르다. 개발에서 상속이 무엇이고, 왜 쓰이고, 어떻게 쓰이는지 정리해보려 한다. - 개발에서 상속이 무엇인가? 누군가(보통 부모) 죽기전 가족, 자식에게 재산을 나눠준다. 이걸 받는것을 상속이라고 하는데, 개발에선 부모클래스가 가진 변수나 메소드를 물려받아 알아서 구현시키고, 사용하거나 변형시켜 사용할 수 있다. 능력의 되물림이라고 보면 된다. - 개발에서 상속을 왜 사용하는가? 개발하면서 상당히 많은 기능들이 만들어져 있는데, 이를 간단하게 불러오기 위함이다. 에러처리나, 입력, 그외 요구사항에 따라 만들어진 기능들을 직접 개발하지 않고 원하는 소스에서 상속받게.. 2023. 5. 26.
[JAVA] String의 빈값 구분하기 null check 자바로 개발하다보면 String 값을 자주 사용하는데, null 체크나 빈값인지 아닌지 체크하는 기능이 반드시 쓰이는 것 같습니다. 그래서 빈값을 체크하는 기능에 대해 별도로 정리해두고자 합니다. 1. isEmpty() Java 6 이상부터 지원하는 isEmpty() 메소드로 빈값인지 아닌지 구분할 수 있습니다. 그러나 null값인 경우 에러가 발생합니다. isEmpty()만 가지고 구분하기엔 한계가 있어 보입니다. 1 2 3 4 5 6 7 String aa = ""; String bb = " "; String cc = null; System.out.println("aa : "+aa.isEmpty()); System.out.println("bb : "+bb.isEmpty()); System.out.pri.. 2023. 5. 24.
[Java] String 자르기 substring 기본적으로 자바가 제공하는 String 형식을 분해, 자르는 작업도 필요한 경우가 있다. 그럴때 substring을 쓰면되는데 쓰이는 방식은 크게 2가지다 - str.substring(n) 인덱스 n부터 드러냄 - str.substring(n, m) 인덱스 n부터 m까지 드러냄 가끔 명령어 사용 방법을 해매곤 하는데, 이번기회에 정리해두려한다. 주로 str.substring(n, m) 방식을 사용하는데, 2023. 5. 23.
[JAVA] JVM 분석 도구, 성능 관리 java 개발을 하며 프로젝트를 하는 중 성능 이슈가 생기는 경우가 있습니다. 프로젝트의 규모와 사용되는 비중을 생각한다면 성능 때문에 문제되는 경우가 꽤 있는 것 같습니다. 성능이 개선되려면 어떻게 애햐하는지 정말 모호하고 애매합니다. - 성능이 어떻게 문제가 되는지 확인할 수 있어야 되며 - 성능을 개선하는데 어떤 작업이 필요한지 알아야합니다. 이는 일반적인 개발지식과 별개로 추가적인 성능 대응 기술이 필요한 것 같습니다. 이에 도움이 되는 도구들이 있는데, 도구들에 대해 정리해볼까 합니다. jvmtop jvm-tools jstack jcmd jhsdb OpenJDK tools Conclusion 도구의 구분은 * JVM 진단 도구 - 실시간 진단 도구 (jvm-tools, jcmd, jhsdb) -.. 2023. 5. 17.
[JAVA] 기본형(primitive type) - 실수형(float, double) 실수형은 실수를 저장하기 위한 타입으로 float와 double 두 가지가 있으며 각 타입의 변수에 저장할 수 있는 값의 범위는 아래와 같다. 타입 저장 가능한 값의 범위(양수) 정밀도 bit byte float 1.4 x 10(-45승) ~ 3.4 x 10(38승) 7자리 32 4 -1.4 x 10(-45승) ~ -3.4 x 10(38승) double 4.9 x 10(-324승) ~ 1.8 x 10(308승) 15자리 64 8 -4.9 x 10(-324승) ~ -1.8 x 10(308승) 실수형의 선택 기준 만일 7자리 이상의 정밀도가 필요하다면, 변수의 타입을 double로 해야한다. double타입은 float 타입보다 정밀도가 약 2배인, 10진수로 15자리의 정밀도를 가진다. 즉 연산속도의 향상.. 2023. 5. 17.
[JAVA] JAVA에서 JSON 사용하기 - JSONObject, JSONArray java에서 json 형식을 담는 객체가 있을까? 별도 외부 라이브러리를 통해 사용할 수 있다. https://mvnrepository.com/artifact/org.json/json dependency를 통해 라이브러리를 지원해도 되나, 라이브러리를 다운로드 받아 사용해도 된다. 아래와 같은 데이터를 만들고 싶을 경우 라이브러리를 추가했다면 JSONArray, JSONObject 객체를 사용할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 import org.json.JSONArray; import org.json.JSONObject; import lombok.extern... 2023. 5. 9.
[JAVA] 리스트 List ArrayList 사용 방법 리스트는 배열과 비슷한 자바의 자료형으로 배열보다 편리한 기능을 많이 가지고 있다. 리스트와 배열의 가장 큰 차이는 배열은 크기가 정해져 있지만 리스트는 크기가 정해져 있지 않고 동적으로 변한다는 점이다. 선언할 때 크기를 정해서 선언할 필요가 없으므로 크기의 제한에서 자유롭다. ArrayList List 자료형은 ArrayList 뿐만아니라 여러가지가 있다. 여기선 ArrayList만 다루려 한다. add ArrayList에 값을 추가할 때 사용한다. import java.util.ArrayList; import java.util.List; import lombok.extern.slf4j.Slf4j; @Slf4j public class ListSample { public static void main(.. 2023. 5. 8.
[JAVA] 배열 array 배열을 자바에서 쓰려면 Array 선언이나 사용방법을 알아둬야 한다. 배열이란 자료형의 종류가 아닌 자료형의 집합을 의미한다. 배열은 자료형 타입 바로 옆에 [] 기호를 사용하여 표현한다. 아래 예제와 같이 int 자료형의 배열은 int[] 로 표현한다. int[] arr = {12, 24, 35, 37, 49}; 요일의 집합은 다음과 같이 String 배열로 표현 할 수 있다. String[] weeks = {"월", "화", "수", "목", "금", "토", "일"}; 위에서 살펴본 요일의 집합은 다음과 같이 고쳐 쓸 수 있다. String[] weeks = new String[7]; weeks[0] = "월"; weeks[1] = "화"; weeks[2] = "수"; weeks[3] = "목"; .. 2023. 5. 8.
[JAVA] 여러 데이터를 저장하는 객체, array, map, list, 자바를 쓰다보면 여러 데이터를 저장하여 사용하는 array 배열 map 맵 list 리스트 를 자주 접하게 된다. 위 객체들을 쓰는 이유는 특정한 데이터의 집합을 다루기 위해서다. 목적을 가진 데이터들을 개별로 추가나 변경을 하는데 상당히 많은 변수들을 생성해야 한다면 개발이 어려워 질 것이다. 성격에 따라 객체를 생성하여 여러 데이터들을 쉽게 다룰 수 있는 장점이 있기에 자주 쓰이는 편이다. 상세히 구분하자면 배열, Collection, Map 으로 구분된다. 쨋든 이중에서 내가 자주쓰는 Array, Map, List에 대해 정리해 두려 한다. 쓰다보면 각자 방법이 달라 자주 잊어버리고 혼동이 오기 때문이다. https://teck10.tistory.com/322 [JAVA] 배열 array 배열을 자.. 2023. 5. 8.
[LOMBOK] @NOARGSCONSTRUCTOR , @ALLARGSCONSTRUCTOR , @REQUIREDARGSCONSTRUCTOR @NoArgsConstructor 파라미터가 없는 기본 생성자를 생성 @AllArgsConstructor 모든 필드 값을 파라미터로 받는 생성자를 만듦 @RequiredArgsConstructor final이나 @NonNull인 필드 값만 파라미터로 받는 생성자 만듦 @NoArgsConstructor @RequiredArgsConstructor @AllArgsConstructor public class User { private Long id; @NonNull private String name; @NonNull private String pw; private int age; } User user1 = new User(); // @NoArgsConstructor User user2 = new User(".. 2023. 5. 2.
[JAVA] openJDK 설치하기, openJDK 환경변수 설정 openJDK는 오라클에서 제공하는 자바 기능을 무료로 사용하기위해 만들어진 오픈소스 개발툴로써 무료로 사용 가능합니다. 현재 오라클에서 자바를 상용으로 돌리며 유료화를 진행했으나 openjdk의 등장과 기능 업데이트, 버전 지원으로 상용화 정착에 상업적으로 실패한 것으로 알고있습니다. 현재 오라클에서 이클립스 재단에 자바에 대한 내용을 전달해 이클립스 재단에서 이름을 바꾼 Jakarta ee로 새롭게 출시했는데, 얼마 되지 않은 부분이라 아직 많이 사용되지 않는 것으로 보입니다. openJDK가 계속적인 버전업이 되고 있으며, java를 대체하기 편하다보니 당분간은 openJDK를 사용하는게 좋을거라 생각됩니다. 1. openJDK 사이트 소개 * openJDK 공식사이트 https://openjdk... 2023. 4. 21.
[REST] REST API 소개, URI 명명규칙 정리 REST API란? REST(Representational State Transfer)는 HTTP 네트워크 상의 리소스(Resource, 자원)를 정의하고 해당 리소스를 URI라는 고유한 주소로 접근하는 접근 방식을 의미하며, REST 방식을 통해서 리소스에 접근하기 위한 서비스 API를 지칭합니다. REST에서 의미하는 리소스란? REST에서 의미하는 자원은 데이터베이스에 저장된 데이터, 문서, 이미지, 동영상 등 HTTP 통신을 통해 주고 받을 수 있는 모든 것을 의미합니다. URI(Uniform Resource Identifier)와 URL(Uniform Resource Locator) URI는 네트워크 상에 있는 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identif.. 2023. 4. 21.