JAVA/java 26
-
회사에서 프로젝트를 위해 환경세팅이 필요한데,또 까먹을 것 같아서 정리ㅎ 아래의 링크 접속 (오라클 홈페이지)https://www.oracle.com/java/technologies/downloads/#java8 원하는 운영체제에 맞게 파일 다운로드!🎈 (오라클 회원가입 되어있어야 설치 가능) 파일을 받아 설치까지 완료되었으면 환경 변수 설정을 해줘야 한다. 내 PC 우클릭 -> 속성 좌측의 정보 -> 고급 시스템 설정 클릭 고급 탭 -> 환경변수 클릭 시스템 변수 쪽에 새로 만들기 버튼 클릭 이름은 JAVA_HOME 으로 작성하고,변수 값에는 jdk 파일 설치한 경로 설정해 준다. 그리고 시스템변수 목록을 보면 Path가 있는데이를 선택하고 편집 버튼 클릭! 환경 변수 편집이 나오면 새로 만..
-
StackStack은 "쌓다"라는 의미를 가지고 있다.이 의미에 걸맞게 데이터를 쌓는 구조라고 볼 수 있다. 스택은 입구가 하나뿐인 원통형을 생각하면 되는데,데이터가 순서대로 쌓이다가 해당 데이터를 요청하게 되면 입구가 하나이기 때문에 가장 마지막 데이터가 나오는LIFO (후입선출) 형태이다. Stack는 자바의 컬렉션 프레임워크 중 하나로,제네릭 을 같이 사용해야 한다. ex) Stack stack = new Stack Stack은 직전의 데이터 무시 / 실행 취소 / 뒤로 가기와 같은 상황에서 사용할 수 있다.배열과는 다르게 특정 인덱스에 접근할 수 없다. public static void main(String[] args) { // Integer 타입의 Stack 생성 ..
-
웹 크롤링이란?웹 데이터를 모아서 정제 및 가공하는 것 [정적 크롤링]웹 페이지 데이터에만 접근,페이지에 직접 작성된 데이터만 접근 가능"페이지 소스 코드 보기"로 보이는 데이터만 가져오는 것ex) jsoup[동적 크롤링]웹 페이지가 참조하는 데이터까지 접근 가능본 서버의 데이터를 하이딩(은닉, 암호화)했다면 접근 불가능하다.ex) 셀레니움 참고!크롤링 할 때 무신사나 쿠팡 같은 사이트는 다른 곳의 데이터를 가져다가 사용하는 것이기 때문에 크롤링하기 어려움.멜론, 벅스, CGV 같은 곳들이 자기 데이터를 사용하기 때문에 상대적으로 크롤링하기 용이함. 이클립스 jsoup 설정 jsoup을 사용하기 위해서는 jsoup 파일 다운로드 후 설정이 필요하다. 1. 사용하려는 프로젝트 파일 우클릭 → Build..
-
[파일 입출력]- 자바에서 단독으로 하는 경우는 없다.- 파일 다운로드, 이미지 업로드 기능을 구현할 때 필요한 내용. PC와 프로그램의 상호작용내가 경로를 알 수 있는 폴더에 텍스트 파일을 만들어주고, 이클립스에 주석으로 해당 폴더의 경로를 적어준다.(나중에 찾기 쉽도록! == 효율성을 위해서) package class01;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.Scanner;public class Test001 { public static void main(String[] args) { // 파일..
-
스레드란실질적으로 일을 수행하는 주체. 작업관리자를 열어서 확인해 보면 두 가지를 확인할 수 있는데,앱 : 사용자가 실행시킨 SW백그라운드 프로세스 : 컴퓨터가 동작을 하기 위해 원래 수행 중인 SW 위의 앱에 메모리를 얹게 되면 프로세스가 된다.프로세스 == 작업 == 실행중인 프로그램 == 메모리를 할당받은 프로그램 사용자가 설치한 것은 프로그램프로그램을 더블클릭해서 실행시키면 (메모리, CPU, 자원을 할당하면) 프로세스프로세스에서 실질적으로 일을 수행하는 주체 == 스레드 ★병렬적으로, 개별적으로, 비동기적으로 일을 수행한다. ex) 이클립스, 카카오톡, 메모장 순서로 프로그램을 실행하면 --> 메모장 - 카카오톡 - 이클립스 순으로 프로그램이..
-
예외처리프로그램을 이용하다가 예외가 발생하게 되면, 프로그램이 그 즉시 종료(비정상 종료)되기 때문에예외를 개발자가 미리 처리해야 한다. 예외처리를 하는 이유는?프로그램이 비정상적으로 종료되는 것을 예방하기 위해서. 예외처리 하는 방식은?예외처리가 발생할 수 있는 부분을 try문으로 감싸주고,그 아래에 바로 catch문으로 예외가 발생했을 경우 수행할 코드를 작성해 준다. 예시.public static void main(String[] args){ int[] datas=new int[3]; try{ System.out.println("로그 01"); // 예외가 발생할 확률이 존재하는 코드를 작성 System.out.println(datas[0]); /..
-
프로그래머의 최고 목표는?유지보수가 용이한 코드를 작성하는 것이다! 이때, 응집도와 결합도가 매우 중요하다.응집도가 높고 결합도가 낮은 코드를 작성해야 한다. 결합도가 낮은 코드코드가 조각조각 분리가 잘 되어있다.모듈화 (컴포넌트화, 함수화)가 잘 되어있다.겹치는 부분이 적다1개의 변경사항이 발생했을 때, 한 곳의 코드만 수정하면 된다는 것을 의미한다.ex) 하드코딩 제거하기, 변수화(상수화) 🍀이해하기 쉬운 예시!샌드위치 (토마토가 들어있음)햄버거 (토마토가 들어있음)샐러드 (토마토가 들어있음)------------------------------------------> 토마토가 상했을 경우토마토가 들어간 부분과, 닿은 부분까지도 다 확인을 해야 한다.하지만 재료끼리 나눠서 보관한다면?토마토 / 오이..
-
학생부 프로그램을 MVC 패턴으로 변경한다. : 관련하여 강사님 풀이! 메뉴 5. 평균 출력 // Controllerelse if(action==5) { ArrayList datas=model.selectAll(); // 데이터 정제, 가공 int sum=0; for(StudentDTO data:datas) { sum+=data.getScore(); } double avg=sum*1.0/datas.size(); /* StudentDTO data=model.selectOne(); double avg=data.getAvg(); */ view.print14(avg);} // Model (selectAll인 경우) public ArrayList selectAll() { System..
-
MVC 패턴을 사용하여 커뮤니티를 만든다.수업 중 일부는 강사님께서 문제 풀이를 해주셨고, 해주시지 않은 나머지 부분을 팀원들과 하나씩 맡아서 다음날까지 완료해 가는 미션이었다.[요구사항] // 프로그램이 제공하는 기능과 CRUD 정의회원가입 MemberDAO C로그인 MemberDAO R 그중에서도 selectOne로그아웃 (컨트롤러의 역할, 시스템에 아무런 변화도 없으니까!)글 작성 BoardDAO C글 삭제 BoardDAO D글 전체 출력 BoardDAO R selectAll글 검색 : 제목으로 검색 BoardDAO R selectAll글 검색 : 작성자 이름으로 검색 BoardDAO R selectAll글 1개 선택해서 보기 BoardDAO R selectOne글 내용 변경 BoardDAO R ..
-
코드는 크게 2가지 분류로 나뉜다. 1) 사용자와 닿아있는 부분 - 프론트엔드 (데이터를 조금 다룰 수 있다는 뜻, 실제 어떠한 기능을 하지는 x)2) 프로그램에서 기능을 수행하는 부분 - 백, 서버, DB - DB & DBMS (MySQL, 오라클, ....) - 서비스 단, Controller, 비즈니스 단 MVC란?Model View Controller를 의미한다.M V C 패턴으로 코드를 작성하면 유지보수가 용이하다. [M] : DB, DBMS [V] : 사용자에게 출력을 하는 메서드, 사용자에게 입력을 받아오는 메서드[C] : V와 M을 조합하는 영역 View프론트엔드사용자에게 입출력을 하고/받아오는 메서드입출력을 담당하는 것이..
-
프로그램을 만들기 위해서는 자료구조를 무엇을 선택할지가 중요하다.자료구조는 배열[], 배열리스트, 연결리스트, 집합, 맵, 트리,... 등 다양한 구조가 있다.이 중 웹개발시 자주 사용되는 것은 배열리스트와 맵이다. 컬렉션1) 모든 컬렉션이 toString() 오버라이딩 되어있어서 전체 출력이 예쁘게 나온다2) 다양한 메서드들이 이미 만들어져 있다.3) 모든 컬렉션들은 자료형을 제한하지 않고 저장할 수 있다. 하지만 자료형 제한 없이 사용하는 것은 개발자에게 불리하기 때문에 , 자료형을 제한(강제)해서 사용한다. 자료형 강제 == 제네릭이라고 한다. == 배열리스트 vs 배열배열리스트는 개수가 무제한배열은 개수가 정해져 있음공통점은 둘 다 데이터 관련성 O, 자료형 정해짐 배열리스트imp..
-
인터페이스추상클래스와 인터페이스 개념이 같이 다니는데, 인터페이스가 훨씬 더 중요하다. 같은 기능을 수행하는 메서드들끼리 이름이나 인자, 아웃풋(리턴)이 다르면 구현이 불가함==유지보수가 불리하다. 개발자의 제 1 목표는 유지보수 용이 극대화이다.같은 기능을 수행하는 메서드들끼리 이름이나 인자, 아웃풋(리턴)이 같아야 하므로메서드 시그니쳐를 강제해야 할 필요성이 있다. 오버라이딩을 하면 메서드 시그니쳐가 같기 때문에, 오버라이딩을 강제해야 한다!하지만 오버라이딩은 상속관계에서만 사용할 수 있는데, 상속관계가 아닌 경우가 있다. 이럴 때 활용하는 것이 인터페이스이다. 인터페이스는implements 인터페이스명 으로 사용한다. 예제.워치를 활용하여 Phone의 powerOn과, soundUP/Down을 구현..