no image
[Javascript] 배열 확인 - isArray()
타입 확인 방법에는 typeof가 있다. 하지만 배열을 typeof로 확인해보면 'object'로 확인이된다. 배열은 'object'의 한 형태이기 때문이다. 그러하여 다른 함수로 배열인지 확인해야한다. 그게 바로 'isArray()' 이다. Array.isArray(arr) 파라미터인 arr가 배열인지 확인하여 boolean으로 리턴된다. ※return으로 배열인경우 true, 배열이 아닌경우 false 리턴 let testArr = new Array(); testArr.push('a'); typeof testArr; // object Array.isArray(testArr); // true 믿지 못하는 분들을 위하여 아래는 개발자도구에서 테스트한 결과이다.
2022.07.29
[Java] 생성자 (Constructor)
생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드' 그래서 생성시점에 실행되어야 할 작업을 위해 사용 생성자의 조건1. 생성자의 이름은 클래스의 이름과 같아야한다.2. 생성자는 리턴 값이 없다. ※리턴값이 없을때 메소드는 void를 사용하지만, 생성자는 void마저도 생략한다. 생성자도 오버로딩이 가능하여, 하나의 클래스에 여러개의 생성자가 존재할 수 있다. 연산자 new가 인스턴스를 생성하는 것이며 생성자가 인스턴스를 생성하는 것이 아니다. 생성자에서 다른 생성자 호출 Class Test{ Test(String test1){ this("hi", 1); //첫번째 줄에 사용하며, this를 사용한다. System.out.println(test1); } Test(String test2, in..
2022.07.28
[Java] 가변인자 (varargs)란
기존에는 메서드의 매개변수의 개수가 고정적이었다. 하지만 jdk1.5부터는 동적으로 가능하고, 가변인자라고 부른다. 그럼 가변인자가 무엇인지 보자. class Test{ public void test(String test, Object... args){} } 위 와 같이 Object... 으로 사용한다. 단, 마지막 매개변수 자리에 선언해야한다. 그렇지 않은 경우에는 컴파일 에러가 발생한다. 왜? 마지막 매개변수가 아닌 경우 구별 방법이 없기 때문이다. 그럼 어떤 경우일때 사용할까? class Test{ public void test(String test){} // 1 public void test(String test1, String test2){} // 2 public void test(String ..
2022.07.27
[Java] Overloading이란
한 클래스에 같은 이름을 가진 메서드가 여러개 있더라도, 매개변수의 개수와 타입이 다르면, 같은 이름으로 여러개의 메서드를 정의할 수 있다. 정리 1. 메서드 이름이 같아야 된다. 2. 매개변수의 개수 or 타입이 달라야 한다. class Test{ public void test(String test1){} //1 public void test(String test1, String test2){} //2 public void test(int test1, String test2){} //3 } 위 세개의 메서드는 test라는 이름으로 모두 같다. 하지만, 1번은 매개변수가 한개이고, 2번은 두개이다. 3번은 2번과 같이 두개의 매개변수를 갖고 있지만, 타입이 다르다. 그래서 1~3번의 test메서드는 모두..
2022.07.27
[Java] MultipartHttpServletRequest 다중 파일 업로드시 파일 체크
게시판 글 작성시 파일 첨부없이 등록할 경우에 파일 유무 체크를 아래와 같이 size로만 하였다. public String saveWrite(MultipartHttpServletRequest uploadFile){ List fileList = uploadFile.getFiles("uploadFile"); if(fileList.size() > 0){ String seq = clubBoardCreateDTO.getSeq(); //첨부파일 fileUpload.saveFiles(uploadFile, "clubBoard", seq); } } 그런데 첨부를 안해도 size가 1이나오는 이슈가 있었다. 아래와 같이 수정하였다. public String saveWrite(MultipartHttpServletReques..
2022.07.21
[MyBatis] update set에 모두 if 사용하기와 trim태그
개발 과정에서 업데이트 해야할 요소가 정해져있지 않은 경우가 있을 수 있다. update testTable test1 = #{test1}, test2 = #{test2}, 위 와 같이 사용하면 되는데 하나씩 알아보자 Trim 접두어(prefix), 접미어(suffix) 작업 하며, 를 보완하는 역할 속성에 대해서 알아보자 1. prefix 태그 내부에 실행될 쿼리문 가장 앞에 속성값을 삽입 insert (id, pw) ('admin', '1111') -> insert (id, pw) values ('admin', '1111') 2. suffix 태그 내부에 실행될 쿼리문 가장 뒤에 속성값을 삽입 insert (id, pw) values 'admin', '1111' -> insert (id, pw) val..
2022.07.21
[Java] 오버로딩(overloading)
Java에서 단골로 나오는 면접질문이기도 하고, 그만큼 당연히 알고 있어야하는 것인데, 정리를 해보겠다. 오버로딩(overloading) 한 클래스안에 같은 이름의 메서드를 다르게 정의하는것이다. 오버로딩 조건 1. 메서드 이름이 같아야한다. 2. 아규먼트의 개수 또는 타입이 달라야한다. Class Overloading{ public void testOverloading(String a) {} public void testOverloading(String a, String b) {} public void testOverloading(int a, String b) {} } 오버로딩 장점 하나의 이름으로 아규먼트의 타입과 개수에 따라서 다른 기능을 할 수 있도록 해준다. 깔끔하게 사용 가능하다. 대표적으로 ..
2022.07.21
HttpServletRequest와 HttpServletResponse
WAS가 클라이언트(브라우저)로 부터 서블릿 요청을 받게되면 일어나는 순서 1. HttpServletRequest 객체를 생성( 요청받은 데이터가 저장된 객체 ) 2. HttpServletResponse 객체를 생성( 빈 객체 ) 생성된 HttpServletRequest , HttpServletResponse 객체를 서블릿으로 전달하게 된다. HttpServletRequest 위에서 설명한것과 같이 클라이언트가 전달한 데이터를 담고있는 객체이다. 단일 데이터를 꺼낼때는 아래와 같이 사용 http://localhost:8080/request?id=gold HttpServletRequest request String id = request.getParameter("id"); getParameter의 반환타입..
2022.07.21