본문 바로가기

Java

(9)
[SPRING]스프링 입문을 위한 자바 객체 지향의 원리와 이해(1) 책을 시작하자마자 작가가 의문을 던진다. 스프링을 이해하려면 이전의 어떤 기술을 이해하고 있어야 하는가? 나는 당연하게 OOP라고 생각했다. 하지만 작가는 다양한 답변을 내놓았고 그중 물론 OOP라는 답변이 있었다. 작가가 원했던 답변은 아래와 같다. SOA CBE OOP 절차적/구조적 프로그래밍 기계어/어셈블리어 5 로 갈수록 작가의 만점과 가까워지는 것 같은데 나는 아쉽게도 OOP만 생각해냈다. 그다음 장으로 넘어가서 작가는 T 메모리 구조를 보여주면서 static, stack, heap 영역들의 역할과 구조 등을 알려 주었는데 정리를 하자면 아래와 같다. 스태틱 영역 스택 영역(메서드들의 놀이터) 힙 영역 스레드 스레트 스태틱 = 클래스의 놀이터 스택 = 메스드의 놀이터 힙 = 객체의 놀이터 위의 ..
[JAVA] 반복문(for문)안에서 삭제 시 생기는 에러(ConcurrentModificationException ) 반복문을 돌리면서 특정 원소를 삭제하던 중 제거되어야 하는 리스트가 제거되지 않는다는 걸 깨달았다. 처음 오류가 난 코드를 공유한다. List exampleList = exampleService.selectExampleList(); exampleList.forEach(item -> { if("삭제".equals(item)){ exampleList.remove(item); } }); 무엇이 문제인지 처음엔 몰랐다. 마찬가지로 아래의 코드에서도 동일한 오류가 발생했다. List exampleList = exampleService.selectExampleList(); for (example exampleList : item) { if ("삭제".equals(item)) { exampleList.remove(i..
예외 처리 가이드 - 임도형님 글 정리 예외 처리에 대해 알아보다 좋은 가이드라인이 있길래 정리를 해보았다. 보라색 가이드글을 먼저 읽고 빨강색 가이드글을 읽으면 이해가 잘된다. 예외 처리 가이드 - 모든 일에는 예외가 있다. - 모든 시스템에는 예측하지 못하는 상황이 있다. - 작업의 절차를 정의하는 프로그래밍에도 예외가 있을 수밖에 없다. 예외의 종류 - 예측 가능한 예외 예측 가능한만큼 예외처리 자체가 개발의 일부이다. ex) 로그인을 실패했다. DB에 레코드가 없다.  파일을 찾을 수 없다. - 예측 불가능한 예외 버그 아니면 시스템 환경에 기인한다. 실시간 처리는 불가능하다, 대신 개선되어야 한다. 예외 처리가 제대로 되지 않으면? - 문제가 발생해도 로그를 보지 않는다. - println(), break point에 의지한 디버깅..
[JAVA] 자바 배열 ArrayList 중복제거 정리 1.로직을 통한 중복 제거 contains()를 사용해, list를 for문 돌면서 arrayList에 포함되어있지 않는 데이터만 arrayList에 add 한다. contains() 함수는 대상 문자열에 특정 문자열이 포함되어 있는지 확인하는 함수다. 대/소문자를 구분한다. package test; import java.util.ArrayList; public class test { public static void main(String[] args) { String[] list = {"중복아님", "중복", "중복"}; ArrayList arrayList = new ArrayList(); for(String item : list){ if(!arrayList.contains(item)) arrayLis..
이클립스 .Project 관련 오류 이클립스에서 프로젝트를 시작하면서 복사. 붙여놓기 열심히 했더니 오류가 터졌다. 평상시에 사용하던 자바가 아니다. 단축기도 먹지를 않는다. 싸함이 느껴졌다. 내가 어디를 잘못했는가 거슬러올라가보았다. 그러다 찾았다. 이클립스에서의 .project 설정을 안해놨다. 다시 .project의 설정을 열심히 복사, 붙여넣기 설정을 완료하니 제대로 돌아간다. 오류도 뜨고 단축키도 잘 먹는다. .project - 이클립스 워크스페이스 상에서 프로젝트를 생성하게 되면 자동으로 생성되는 파일 - 프로젝트 파일 정보가 담겨있다 - "."으로 시작하니 Unix계열에서는 숨김파일 - 프로젝트가 웹 프로젝트인지 자바 프로젝트인지에 구별 가능함 - 자세한 도움말 : https://help.eclipse.org/2021-03/i..
ResultSet 객체의 커서를 조작하는 메소드 first() 커서의 위치를 조회 결과 값의 첫번째로 이동 last() 커서의 위치를 조회 결과 값의 마지막으로 이동 next() 커서의 위치를 순방향으로 이동 previous() 커서의 위치를 역방향으로 이동 getRow() 커서의 인덱스 값을 조회 isFirst() 커서의 위치가 처음인지 여부 조회 isLast() 커서의 위치가 마지막인지 여부 조회 beforeFirst() 커서의 위치를 가장 처음으로 이동: rs.first() 메소드의 이전 공간으로써 비어있는 공간 afterLast() 커서의 위치를 가장 마지막으로 이동: rs.last() 메소드의 이후 공간으로써 비어있는 공간 예시 rs.last(); //커서를 마지막으로 이동 result = new String[rs.getRow()][10]; ..
Operation not allowed for a result set of type ResultSet.TYPE_FORWARD_ONLY. Operation not allowed for a result set of type ResultSet.TYPE_FORWARD_ONLY. 위와 같은 오류가 발생했다. Statement stmt = null; ResultSet rs = null; StringBuffer sb = null; try{ stmt = dbconn.create(); sb = new StringBuffer(); sb.append("SELECT * FROM TABLE\n"); System.out.println(sb.toString()); rs = stmt.executeQuery(sb.toString()); rs.last(); String[][] result = new String[rs.getRow()][6]; rs.beforeFirst(..
[TOMCAT] 프로젝트 실행중 오류_사이트에 연결할 수 없음 어제는 잘 쓰고 있는 톰캣을 7.0에서 9.0으로 바꾸고 싶은 월요일이였다. 생각없이 7.0을 삭제하고 9.0을 돌렸더니 잘 연결되던 사이트가 연결이 되지 않았다. 구글링을 해보니 1. 톰캣 프로젝트 확인 2. tomcat >> web modules 확인 3. tomcat >> properties >> General >> switch Location확인 4. server.xml >> port 번호 확인 5. server.xml >> host 확인 6. 프로젝트 application.properties 확인 다양한 방안들이 검색이 된다. 하지만 사이트는 연결이 계속해서 연결이 안되었고... 사수님께 도움을 요청했다... 해결방안은 간단했다. server.xml >> Connector port번호 확인 80..