반응형

개발 14

EC2 Java, Tomcat 설치

1. Java 1.8 설치 sudo apt install openjdk-8-jre-headless 2. Javac 설치 sudo apt install openjdk-8-jdk-headless 3. Tomcat 8.5.23 설치 1) 링크 주소 복사 https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.23/bin/ 2) 파일 다운로드 sudo wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.23/bin/apache-tomcat-8.5.23.tar.gz 3) 압축 해제 sudo tar xvfz apache-tomcat-8.5.23.tar.gz 4) 폴더 생성 후 이동 sudo mkdir -p /usr/local..

개발/AWS 2023.03.23

BufferedWriter/Reader

백준 코테를 1단계부터 하고 있다 보니, Scanner는 많은 데이터를 입력받아 처리할 때 Timeout이 뜬다는 사실을 알았다. 해결 방안으로는 Buffer와 StringBuilder가 있어서 자세히 알아보고자 한다. Scanner vs Buffered 차이 Scanner는 사용자 입력에 따라 하나씩 값을 전달한다. 사용자가 "HELLO"라는 값을 입력 하면 "H", "E", "L", "L", "O" 각각 5번의 전달이 이루어진다. 하나씩 전달하는 과정에서 시간이 소요되므로 많은 데이터를 처리할 때 Timeout이 발생 한다. Buffer는 사용자가 입력하면 Buffer라는 공간에 저장해놨다가 입력이 완료 되는 시점/버퍼가 가득찬 시점에 전달된다. 숫자 5개를 입력 받아 합을 구하는 함수로 테스트 해보..

개발/Java 2023.02.28

Tomcat 9.0 SSL 인증서 적용

SSL 인증서 발급 프로그램 다운 전문 사이트에서 정식으로 인증서를 발급 받을 수도 있지만, 테스트 용으로 생성하기 위해 하단 프로그램을 설치함. https://sourceforge.net/projects/openssl/files/latest/download?source=typ_redirect%EF%BB%BFVisit 개인키 발급 genrsa -des3 -out [키이름] 2048 ex) genrsa -des3 -out private.pem 2048 genrsa : RSA 개인 키 생성 *RSA : 공개 키 암호 알고리즘, 해독이 어려워 전자서명에 사용 des3 : 암호화 방식 out [키이름] : 키 출력 *pem : 키와 인증서를 파일 하나로 만듦 2048 : 생성할 개인 키의 크기(비트) 1-2. ..

개발/Tomcat 2023.02.22

자바 미니 솔루션 (1) - 학생 관리 시스템

Git : https://github.com/dddddni/StudentManage 자바 강의 다 듣고 까먹지 않게 흔한 학생 관리 시스템을 구현했다. ArrayList만을 이용해서 만들었고 추후 수정하면서 개선해나갈 예정이다 클래스 1) 교수 package Entity; public class Professor { public Professor(String name, String subject, int number) { this.name = name; this.subject = subject; this.number = number; } public String getName() { return name; } public void setName(String name) { this.name = name; ..

개발/Java 2023.02.21

Collection - List, Map, Set

자바 컬렉션의 3가지 List, Map, Set의 차이를 알아보자 1. List ArrayList, LinkedList 등 존재 중복 가능 O, 순서 존재 O 1) 추가 ArrayList list = new ArrayList(); // 데이터 추가 list.add("유재석"); list.add("조세호"); list.add("김종국"); list.add("박명수"); list.add("강호동"); 2) 조회 // 데이터 조회 (인덱스) System.out.println(list.get(0)); System.out.println(list.get(1)); System.out.println(list.get(2)); System.out.println(list.get(3)); System.out.println(l..

개발/Java 2023.02.21

사용자 정의 Exception

자바에서는 정의되어 있는 Exception도 발생 하지만, 상황에 맞는 Exception을 직접 만들어 호출해 사용 할 수 있다. 1) 정의 제품이 품절인 경우에 발생하는 Exception 생성 Exception을 상속 받고, message를 받는 생성자를 만들어 준다. class ProductSoldOut extends Exception{ public ProductSoldOut(String message) { super(message); } } 2) 호출 재고가 없는 경우 throw new class를 통해 오류 발생 try { if (stock

개발/Java 2023.02.20

Thread와 Runnable차이

자바에서는 Thread 구현 방법이 2가지가 있다 1. Thread 방식 1) 선언 Thread라는 Class를 상속 받아 사용 한다. public class CleanThread extends Thread{ public void run(){ ~~~~ } } 2) 호출 CleanThread 객체를 생성하여 .start()함수를 이용하여 호출 한다. CleanThread cleanThread = new CleanThread(); // cleanThread.run(); cleanThread.start(); 2. Runnable 방식 1) 선언 Runnable이라는 Interface를 구현하여 사용한다 public class CleanRunnable implements Runnable { @Override p..

개발/Java 2023.02.20

객체 지향의 5가지 원칙(SOLID)

SPR : 단일 책임 원칙 (Single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. 변경이 있는 경우, 파급이 적다면 잘 지켰다고 할 수 있다. OCP : 개방-폐쇄 원칙 (Open–closed principle) 확장에는 열려있으나, 변경에는 닫혀 있어야 한다. 다형성을 잘 구현한다면, 잘 지켜서 개발했다고 할 수 있다. LSP : 리스코프 치환 원칙 (Liskov substitution principle) 자동차의 엑셀 기능을 구현한다고 할 때, 뒤로 가게 만들면 LSP위반. 컴파일은 가능 하지만, 원하는 기능이 아님 ISP : 인터페이스 분리 원칙 (Interface segregation principle) 필요한 기능에 따라 인터페이스를 나눠서 구현 해..

개발/Java 2023.01.18
반응형