본문 바로가기

이론70

[JAVA] 객체지향에서의 물리 객체와 개념 객체 / 응집도와 결합도 📍 객체지향에서의 물리 객체와 개념 객체 물리객체 실제로 존재하는 사물을 클래스로 정의한 객체를 뜻한다. ex) 자동차 렌탈 시스템 : 자동차, 고객, 직원, 사업장 정비소 등 ex) 급여 관리 시스템 : 직원, 월급통장 등 개념객체 웹 시스템에서의 Service에 해당되며, 이는 Business logic을 처리하는 부분을 의미한다. Business logic 에서는 여러 객체를 서로 상호작용 하도록 하게하며, 객체가 제공하는 오퍼레이션 method를 통하여 객체의 속성을 변경시킨다. ex) 사용자 관리 시스템 : 사용자 객체의 마지막 접속일자를 이용하여 계정만료, 비밀번호 초기화, 재등록 처리 등등 📢 객체 지향에서 대부분의 코딩은 각 객체에 기능을 정의하고 이를 business logic을 이용해 .. 2021. 6. 3.
[JAVA] Unresolved compilation problem / Clean / Vaildate 다른 클래스를 참조해서 메인에서 사용하려고 하는데 오류가났다' 보통 git이나 다른 곳에서 import해서 파일을 들여온 경우에 발생하는 에러다. 나 같은 경우 다른 프로젝트에 있던 클래스를 복붙해서 오류가 났다. 이때 복붙은 클래스를 이미 만들고 난 후, ctrl+c, v 한거다. 프로젝트 익스플로어 Project Explore 에서 ctrl+c, v 한 경우는, 이클립스가 자동 패키지 변경을 해주는데 이렇게 수동 클래스 생성 후 코드만 복붙하면 에러가 날 수도 있다. 보통 해결방법은 1. 프로젝트 Project > clean 2. tomcat clean, tomcat 디렉토리 clean 나는 1번 방법을 사용했다. clean 기능을 사용하기 전에, 확인해야할 게 있는데 '에러 타당성'이다. 실제로는 .. 2021. 6. 2.
[210601] 자바 문제 리딩, 전치 행렬 전치행렬이란? 임의의 행렬에 대해 열의 위치와 행의 위치를 바꾼 행렬 Like This! 공백으로 구분 주어 1(공백)2(공백)3(공백) 식으로 받은 배열 3개를 열과 행의 위치를 바꾸어 1 4 7 2 5 8 3 6 9 로 출력되게 많드는 알고리즘을 구현해보자. 복잡하게 구현한 ver.이 먼저 있다. 8-15 행을 기준으로 수열 n개씩 3번 받고 shiftToArray로 넘긴다. 17 치환이 끝난 애들을 shiftToNewArray(int[] array1, int[] array2, int[] array3)까지 21-28 shiftToArray(String inputJason) 함수에서는 11,13,15 shift() 에서 입력받은 임의의 수열을 각각 에서 받아 22 공백으로 split()(쪼개기)해서 ".. 2021. 6. 1.
[210530] 자바 문제 리딩 , 배열에서 가장 큰 값과 작은 값 구하기 int[] numbers = {10,55,23,2,79,101,16,82,30,45}; 여기서 가장 큰 값과 작은 값을 구해 출력해보는 문제를 풀어보았다. 알고리즘으로 풀어야해서 약간 헷갈릴 수 있지만 어렵진않았다. 먼저, 배열의 맨 처음 값부터 끝 값까지 [앞의 인덱스] vs. [뒤의 인덱스]를 비교하며 작으면 min에 넣고 크면 max에 넣는 방식이다. 우선 맨 처음 인덱스 값을 min,과 max값에 넣어준다. int min = numbers[0]; int max = numbers[0]; 참고로, 출력시 가장 큰 값과 작은 값의 위치를 알 수 있도록 Position변수도 선언한다. int minPos = 0; int maxPos = 0; 본격 알고리즘 식은 이렇다. 최소값부터 리딩해보자면, 이미 0번.. 2021. 5. 30.
[JAVA] java.text.ParseException / SimpleDateFormat / String을 Date로 parsing하기 FileReader를 해서 그 파일 안에 있는 날짜(String 으로 가져옴) 를 출력하려고 햇는데 Unparseable date Exception이 났다. ; 자세히 들여다보니 DateFomat에서 parsing이 안되는 것 같았다. DateFormat을 다시 확인했다. 자세히 들여다보니 SimpleDateFormat에서 데이트 포맷을 파일 안에 있던 포맷과 다르게 두고 있었다. SimpleDateFormat(yyyy/MM/dd) != data.csv 안의 date 포맷(yyyy.MM.dd) SimpleDateFormat을 data.csv 파일 안에 있는 날짜 포맷으로 맞춰주었다. SimpleDateFormat(yyyy.MM.dd) 짜잔~ 오류 없이 해결 CLEAR!! 2021. 5. 29.
[210529] 자바 문제 리딩 Compare() 지금껏 풀면서 가장 어려운 문제를 만났다 ;; 문제 4개의 항목이 있는 csv(쉼표로 구분) 파일을 읽어들여 지정된 순서로 정렬하여 표시하는 프로그램을 만드세요. 4개 항목 날짜 최고기온 최저기온 평균기온 표시순서 최고 기온이 높은 순 최저 기온이 높은 순 평균 기온이 높은 순 날짜가 오래된 순 4개의 순서에 대한 우선순위로 표시할 때 열 순서는 같습니다. 로드하는 파일은 data.csv이며 정렬 순서 구분을 하기 위해 Temperature Comparator 클래스 정렬을 사용합니다. 우선...weather클래스를 만들었다. 13-14 버퍼로 감싼 파일리딩을 했고 17 읽어온 파일을 한줄씩 String msg 변수에 담았다. 18 그 한줄을 (,) 단위로 잘라 String[] msgs 변수에 담았고 1.. 2021. 5. 29.