자바 15

JAVA) 자바 2차원 리스트 만드는 방법. 2차원 배열, 이중 리스트 만들기

ArrayList의 이중 리스트 생성 방법// 선언List> TwoList = new ArrayList();// 선언과 동시에 초기화List> TwoList = Arrays.asList( Arrays.asList("사과", "수박", "망고", "복숭아", "멜론"), Arrays.asList("책상", "의자", "시계", "선풍기", "펜", "텀블러", "포스트잇", "블로그"), Arrays.asList("빨강", "주황", "노랑", "연두", "초록", "하늘", "파랑", "남색", "보라", "흰색") );     자바 기본 배열의 이중배열 생성하는 방법// 변수 이름만 선언String[][] twoList;// 저장공간 할당String[][] twoList = n..

JAVA) List<Map<String, Object>> 반복문 돌리기

자바에서 List 형태는 일반 반복문으로 돌릴 수 없다. List tempListMap = new ArrayList(); The type of the expression must be an array type but it resolved to List 위와 같은 오류를 만나게 된다. 해결방법 향상된 for문을 사용한다! for(Map map : tempListMap) { System.out.println("리스트 내용: " + map); System.out.println("키 값으로 value찾기: " + map.get("키 값")); } 이렇게 하면 List안의 배열을들 하나하나 돌릴 수 있고, 돌리면서 그 안에 세부내용도 볼 수 있다.

JAVA) 자바 Math.ceil 자세히 알아보기(올림, 소수점 버리기)

페이징 처리를 구현하다가 공식중에 Math.ceil이 있는데, 좀 이해가 가지 않고 헷갈렸다. Math.ceil이 올림인건 알지만, 소수점으로 계산했을때, 정수로 했을때 등등이 달랐기 때문에 어려웠다. 결과를 구글링 해보았지만 예제도 부족했고, 이참에 확실히 알아야 까먹지 않을것같아서 적어보기로 했다. Math 클래스 java.lang 패키지에 속한 클래스로, 수학에서 자주 사용되는 상수와 함수들이 구현되어있는 클래스다. 여기 구현된 메서드들은 static Method 이므로, 객체를 생성하지 않고도 바로 구현할 수 있다. Method 종류 1) random(랜덤 뽑기) 2) abs(절대값) 3) min(최소), max(최대) 4) ceil(올림), floor(내림), round(반올림) 5) pow, ..

Spring) JUnit을 활용하여 테스트 코드 작성하기

스프링으로 프로젝트를 시작하기 전, DB연결은 잘 되는지, 객체 주입이 잘 되는지 등 테스트를 해보는것이 좋다고 한다. JUnit은 자바용 단위 테스트 프레임워크여서 JUnit을 통해 테스트를 실행해볼 수 있다. *JUnit은 자바 1.8버전부터 사용할 수 있다. 1. JUnit 라이브러리가 있는지 확인하기. pom.xml 파일에 가서 아래의 dependency가 있는지 찾아본다. 만약 없으면 위의 코드를 추가하거나 아래 dependencies탭에서 junit을 추가한다. pom.xml말고도 Maven Dependencies에서도 찾아볼 수 있다. 2. 테스트 클래스 작성 테스트 클래스는 src/main/java안의 패키지명과 같은 이름으로 src/test/java 안에 패키지를 만들어야한다. 클래스명은..

Back-end/Spring 2022.04.23

JAVA) 예외 처리 try~catch, throws, 사용자 정의 예외

try ~ catch ~ finally try { 예외 발생 가능성이 있는 코드 } catch(예외 종류) { 해당 예외 발생시 실행할 코드 } finally { 예외가 발생하든 안하든 무조건 실행할 코드 } if ~ else if ~ else 와 비슷하다. try 문에 예외가 발생할 수 있는 코드를 넣고, 예외가 발생할 경우 대처 방안을 catch에 넣는다. 각 예외 종류에 따라 다르게 처리하고 싶으면 else if() 처럼 catch()를 여러 개 둘 수 있다. 여기까지는 if문과 똑같지만 마지막이 다르다. if문의 경우, 앞에서 조건이 해당되는경우 마지막 else문은 실행하지 않지만, try문의 finally는 앞에서 실행이 다 된 이후에 무조건 finally문을 실행한다. catch문에는 예외발생..

JAVA) 자바 추상화(abstract)

추상화는 상속을 강제하는 방법 중 하나다. abstract로 지정하면 바로 사용할 수 없고 상속을 해야만 사용할 수 있다. 추상화 사용이유 1) 상속과 오버라이딩을 강제하기 위해 강제성을 부여하지 않고 클래스를 정의하게될 때 문제점. a가 A를 상속한다고 했을때, a는 A의 메서드를 오버라이딩해서 사용할 수 있다. 근데 오버라이딩은 선택일뿐 자식은 부모의 것을 쓰든 안쓰든 부모입장에서는 강제할 방법이 없다. 즉, 자식은 자유성을 가지고 있다. 근데 만약 만약 모든 부품을 똑같이 만들어야되는데 자식이 실수로 하나를 빠뜨리게된다면?? 이런 상황을 막기 위해 필수로 사용해야 하는 것을 추상메서드로 적는다. 자식이 빠뜨렸을 경우, 오류가 나게해서 무조건 쓰게 만드는것이다. 2) 공통된 기능을 통일하기 위해. 꼭..

JAVA) 자바 Getter/Setter 의미와 왜 사용하는지 알아보자

getter/setter를 알기 전에, 접근제한자를 먼저 알아야한다. 만약 접근제한자가 뭔지 모르면 앞의 포스트를 읽고오길 추천한다. https://luanaeun.tistory.com/140 JAVA) 접근 제어자: public, protected, default, private와 Getter/Setter 접근 제어자 의미 자바는 어떤 클래스와 그 멤버에게 어느정도까지 접근할 수 있는지를 설정할 수 있다. 그 접근 권한을 지정하는것이 접근 제어자다. 사용 이유 접근을 제한하는거니 당연히 보 luanaeun.tistory.com Getter, Setter가 무엇인가? private를 관리하는 메서드. 위에서 private할때 다른 클래스에서 접근하려면 해당 클래스 안의 메서드를 통해서만 가능하다고 했다...

JAVA) 접근 제어자: public, protected, default, private와 Getter/Setter

접근 제어자 의미 자바는 어떤 클래스와 그 멤버에게 어느정도까지 접근할 수 있는지를 설정할 수 있다. 그 접근 권한을 지정하는것이 접근 제어자다. 사용 이유 접근을 제한하는거니 당연히 보안과 관련있다. 중요하거나 함부로 바꾸면 안되는 값들은 아무나 접근할 수 없어야하고, 누구나 자주사용하는 것은 모두가 사용할 수 있도록 자유롭게 해야한다. => 사실상 개발코드 자체가 보안에 신경써야하기 때문에 클래스의 멤벼변수는 대부분 private를 사용한다. 접근 제어자 종류 같은 클래스 같은 패키지 다른 패키지 public O O O protected O O △(상속관계만) default O X X private O X X public 같은 패키지 내에 모든 클래스 O, 다른 패키지 O protected 같은 패키..

JAVA) 자바 API

API(Application Programming Interface) 라이브러리와 같은 의미로, 자바가 제공하는 자바를 제어하는 방법. 개발자들이 자주 사용하는 클래스, 인터페이스의 모음. 대표적인 예로 System.out.println()이 있는데 사실 결과를 화면에 출력하는 로직은 엄~청 복잡하다. 근데 우리는 딱 한줄로 화면에 출력할 수 있는것처럼, 자바안에서 어떤 행동을 할 수 있도록 간단한 방법을 제공하는것이 API이다. API document API 종류와 사용방법을 명시해 놓은 문서. 버전에 따라 API사용법이 조금씩 다르기 때문에 버전에 맞는 API document를 찾아야한다. 8버전 document: https://docs.oracle.com/javase/8/docs/api/ 필요한 A..

JAVA) 자바 패키지(Package)

패키지 개념 패키지는 어려울 거 없다. 그냥 우리 컴퓨터에 있는 폴더와 같다. 탐색기로 자바 파일이 있는 폴더로 들어가보면 패키지가 폴더의 형태로 되어있다. 같은 폴더안에 같은 이름의 파일이 올 수 없듯이, 한 패키지 안에 같은 이름의 자바 파일을 넣을 수 없다. 클래스가 100개정도 된다고 했을때 이름을 중복되지 않게 만들기는 어렵다. 중복된 이름이라도 패키지가 다르면 괜찮기에 분리하기 위해, 그리고 비슷한 기능끼리 묶어놓기 위해 패키지를 사용하다. 패키지 형태 프로젝트 안에 아무 패키지도 만들지않으면 (default package)라고 이름이 붙여진다. 패키지를 만들지 않았으니 Class 파일 상단에 패키지경로가 표지되지않지만 패키지를 만들면 파일 상단에 경로가 표시된다. => 다른 패키지에 있는 클..

반응형