Programming Language/Java
-
[암호화] SHA-256 암호화 방법 (알고리즘 소스코드 포함)Programming Language/Java 2021. 9. 6. 23:00
메인 프로젝트 진행중에 로그인 부분의 암호화를 담당하게 되었다. 밀린 학습들이 결국 메인 프로젝트를 늪으로 끌고 가는거 같ㄷr.... 띠로리 산을 넘으면 또 다른 산이 기다리고 있지만 그래도 잘 해내고 있다. 아무튼 간단히라도 기록을 남겨두려고 한다! 1. SHA-256 알고리즘 코드 - 알고리즘 코드는 다양하게 있었고 SHA-256 뿐만 아니라 MD5 도 있었는데 MD5는 암호화 결함이 발견되어 SHA-256 을 많이 사용하는 것으로 알고있다. SHA-256 알고리즘도 다양하기 때문에 다른 알고리즘도 적용해 보는 것을 추천한다. - SHA-256 은 단방향(암호화만 제공) 알고리즘이니 참고할 것 *hex: 16진수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2..
-
[자바의 정석] ch7-24 ~ ch7-26 객체지향 개념 정리 (참조변수의 형변환, instanceof 연산자)Programming Language/Java 2021. 8. 10. 00:23
ch7-24,25 참조변수의 형변환 - 사용할 수 있는 멤버의 갯수를 조절하는 것 - [중요!] 조상 자손 관계의 참조변수는 서로 형변환 가능 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class Car { } class FireEngine extends Car { } class Ambulance extends Car { } FireEngine f = new FireEngine(); Car c = (Car)f; // OK. 조상인 Car타입으로 형변환(생략가능) FireEngine f2 = (FireEngine)c; // OK. 자손인 FireEngine타입으로 형변환(생략가능) Ambulance a = (Ambulance)f; // 에러! 상속관계가 아닌 클래스 간의 형변환 불가 ..
-
[자바의 정석] ch7-21 ~ ch7-23 객체지향 개념 정리 (접근제어자, 캡슐화, 다형성)Programming Language/Java 2021. 7. 24. 02:45
ch7-21 접근 제어자(access modifier) private : 같은 클래스 내에서만 접근이 가능함 (default) : 같은 패키지 내에서만 접근이 가능함 protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근이 가능함 public : 접근 제한이 전혀없음 접근제한없음 같은 패키지 + 자손 같은 패키지 같은 클래스 public > protected > (default) > private 제어자 같은 클래스 같은 패키지 자손 클래스 전체 public O O O O protected O O O (default) O O private O *쉽게 생각하면, private 는 같은 파일 내부이고 default는 같은 폴더 내부이며, protected는 같은폴더 + 자손이라..
-
[자바의 정석] ch7-12 ~ ch7-20 객체지향 개념 정리 (패키지, import문, 제어자, abstract )Programming Language/Java 2021. 7. 22. 23:01
ch7-12 패키지(package) - 서로 관련된 클래스의 묶음 - 클래스는 클래스 파일(*.class), 패키지는 폴더. 하위 패키지는 하위 폴더 - 클래스의 실제 이름(full name)은 패키지를 포함.(java.lang.String) rt.jar는 클래스들을 압축한 파일(JDK설치경로\jre\lib에 위치) -> Java9 부터는 없고 module 개념으로 변경 -jar는 zip 과 같음 ch7-13 패키지의 선언 - 패키지는 소스파일의 첫 번째 문장으로 단 한번 선언 - 같은 소스 파일의 클래스들은 모두 같은 패키지에 속하게 됨 - 패키지 선언이 없으면 이름없는(unnamed) 패키지에 속하게 됨 (eclipse 에서는 default package) *bin 폴더 - 컴파일된 클래스 파일(*...
-
[자바의 정석] ch7-1 ~ ch7-11 객체지향 개념 정리 (상속, Object클래스, 오버라이딩, 참조변수 super, 생성자super() )Programming Language/Java 2021. 7. 19. 00:21
ch7-1 상속(Inheritance) - 기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용) - 두 클래스를 부모와 자식으로 관계 맺어주는 것 - 자손은 조상(부모의 부모)의 모든 멤버를 상속받음(생성자, 초기화 블럭 제외) - 자손의 멤버 개수는 조상보다 적을 수 없음(같거나 많음) -> 자손의 멤버개수 >= 조상의 멤버 개수 - 자손의 변경은 조상에 영향을 미치지 않음(단, 조상의 변경은 자손에게 영향을 줌) ex) class 자식클래스 extends 부모클래스 { } ch7-3 포함 관계 - 포함(composite) : 클래스의 멤버로 참조변수를 선언하는 것 class Circle { int x; class Circle{ class Point { int y; -----> Point c =..
-
[자바의 정석] ch6-30 ~ ch6-41 객체지향 개념 정리 (오버로딩, 생성자, 생성자 this(), 참조변수 this, 변수의 초기화)Programming Language/Java 2021. 7. 16. 23:03
ch6-30 오버로딩(overloading) - 한 클래스 안에 같은 이름의 메서드 여러개를 정의하는 것 (하나의 메서드 이름에 메서드 하나여야 하는데, 오버로딩은 하나의 메서드 이름에 여러개의 메서드) - 오버로딩이 성립하기 위한 조건 (3가지) 1. 메서드 이름이 같아야함 2. 매개변수의 개수 또는 타입이 달라야함 3. 반환 타입은 영향 없음 보기1 (조건1만 성립-> 오버로딩 아님) -> 메서드 중복정의 int add(int a, int b) { return a+b; } int add(int x, int y) { return x+y; } 보기2 (조건1만 성립-> 오버로딩 아님) -> 메서드 중복정의 int add(int a, int b) { return a+b; } long add(int a, i..
-
[자바의 정석] ch6-22 ~ ch6-29 객체지향 개념 정리 (호출스택, static 메서드)Programming Language/Java 2021. 7. 16. 22:19
ch6-22 호출스택 - 메서드 수행에 필요한 메모리가 제공되는 공간 - 메서드가 호출되면 호출스택에 메모리 할당. 종료되면 해제. 스택(stack): 밑이 막힌 상자. 위에 차곡차곡 쌓임 ch6-23 기본형 매개변수 * 스택 부분 코드 보며 그림 그릴 수 있어야함 기본형 매개변수 - 변수의 값을 읽기만 할 수 있음 (read only) 참조형 매개변수 - 변수의 값을 읽고 변경할 수 있음(read & write) ch6-24 참조형 매개변수 * 스택 부분 코드 보며 그림 그릴 수 있어야함 ch6-25 참조형 반환타입 * 스택 부분 코드 보며 그림 그릴 수 있어야함 * static 메서드는 객체 생성 없이 호출 가능함 ch6-26 static 메서드와 인스턴스 메서드 -> iv 사용 여부로 나뉨 인스턴스..
-
[자바의 정석] ch6-11 ~ ch6-21 객체지향 개념 정리 (선언위치, 변수종류, 메서드, return문)Programming Language/Java 2021. 7. 14. 23:17
ch6-11 선언위치에 따른 변수의 종류 영역은 크게 두 가지로 나뉨 1. 클래스 영역 - iv, cv(static+iv) 2. 메서드 영역 - lv 변수의 종류 선언위치 생성시기 클래스 변수 (class variable) 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수(instance variable) 클래스 영역 인스턴스가 생성되었을 때 지역변수(local variable) 클래스 영역 이외의 영역 (메서드 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 *클래스변수는 객체 생성이 필요 없음. 아무때나 사용 가능 *인스턴스 변수는 객체 생성 필요. 객체 생성을 해야 사용 가능 *지역변수는 메서드 종료 시 자동제거됨 *프로그래밍 관점에서 객체는 iv(인스턴스 변수) 를 묶어 놓은 것 c..