Java & 배경지식
-
Stream 다시 공부Java & 배경지식/기본상식 2021. 5. 2. 15:43
Stream을 사용하면서 깊게 생각하지 않고 간단하게 사용법만 사용하였다. 그러다가 Stream을 깊게 사용하려다가 막히는 내 모습을 보고 이대로는 안되겠다 싶어 다시한번 복습 겸 공부함 코드 Steam 함수의 sorted, filter 등등의 코드는 위의 git 주소로 들어가서 확인 Stream이란? 한줄로 설명 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 기능 /** * 아래의 코드를 실행시키게 된다면 * stream 안쪽에 있는 값이 들어가 있지 않을 것이다. * 그 이유는 스트림을 사용할라면 * 1. 스트림 만들기 * 2. 중간연상 * 3. 최종연산을 * 위 3가지의 조건을 만족시켜야 하는데 현재 1,2단계만 만족했기 때문이다. */ public void whatIsStream() { Li..
-
HTTP와 HTTPS란?Java & 배경지식/기본상식 2021. 3. 11. 13:42
HTTP란? HTTP 서버는 기본 포트인 80번 포트에서 서비스 대기중이며 TCP 80 포트를 사용해 연결하면 서버는 요청에 응답하면서 자료(텍스트)를 주고받는다 단순텍스트를 주고받기 때문에 네트워크에서 전송 신호를 인터셉트하는 경우 원하지 않는 데이터 유출이 발생할 수 있다. HTTPS란? HTTPS는 기존 HTTP 레이어에서 SSL(TLS) 프로토콜을 얹어 평문 데이터를 암호화하는 프로토콜이다 HTTPS의 암호화 공개키는 두개의 키를 갖게 되며, A키로 암호화 하면 B키로 복호화가 가능하며, 반대로 B키로 암호화 하면 A키로 복호화가 가능하다. 여기서 두개의 키중 하나는 공개키(public key)가 되며, 하나는 비공개키(private key)가 된다. 두개의 키가 동작되는 원리를 간단히 살펴보면,..
-
Arrays.sort()와 Arrays.parallelSort() 내부 알고리즘Java & 배경지식/기본상식 2020. 8. 9. 17:35
Arrays.sort() Arrays.sort() 알고리즘은 기본적으로 DualPivotQuicksort를 사용한다. 이 알고리즘은 기본적으로 1. Insertion Sort 2. Merge Sort 3. Quick Sort 위 3개의 알고리즘을 사용하는데 보통 1,2, 1,3을 섞어서 사용한다. static void sort(int[] a, int left, int right, int[] work, int workBase, int workLen) { // Use Quicksort on small arrays if (right - left < QUICKSORT_THRESHOLD) { sort(a, left, right, true); return; } /* * Index run[i] is the start..
-
Server에서 다른 api 호출Java & 배경지식/Java 개발에 도움되는 코드들.. 2020. 7. 27. 14:29
import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.io.BufferedReader; import java.io.IOException; public class ApiExplorer { public static void main(String[] args) throws IOException { StringBuilder urlBuilder = new StringBuilder("http://naver.com"); /*URL*/ String key = "1234"; urlBuilder.append("?" + URLEncoder.enco..
-
Java Server에서 페이징 Html 태그 그리기Java & 배경지식/Java 개발에 도움되는 코드들.. 2020. 7. 24. 17:59
2020년 7월 27일 기준 현 회사는 프론트에서 그려주는 것이 좋으나 아직 서버에서 그려주는 곳이 많다. (페이징은 서버에서 Html태그를 그려주는 것이 아니라 프론트에서 그려줘야함 -> 서버 부하 줄이게) 점심시간에 잠시 코드를 줄이긴했는데 .. 더 보완할 곳이 보인다.( 처음, 이전, 다음, 마지막 계산하는 부분 / 페이지 그려주는 부분 / 각 값 계산하는 부분) -> 차후 다른 method로 분리 /** * 페이징 처리된 Html 태그 * * @param totalrow 총 row 개수 * @param pageno 현재 페이지 * @param maxpage 보여줄 페이지 수 * @param maxrow 보여줄 row 수 * @return 페이지 Html 태그 */ public static Stri..
-
자바 개발자가 알아야하는 25가지 상식!Java & 배경지식/기본상식 2020. 7. 19. 23:27
1. platform independent language(플랫폼 독립 언어) 2020/06/07 - [Java/기본상식] - 자바, JVM, JDK, JRE 차이 2. JVM란 무엇이며 JRE의 차이점은 무엇인가? 2020/06/07 - [Java/기본상식] - 자바, JVM, JDK, JRE 차이 3. Autoboxging과 unboxing의 개념 데이터 타입 종류 Primitive(가벼운 데이터) bollean, char, byte, shourt, int, long, float, double Stack에 존재 Wrapper Object(무거운 데이터) Boolean, Character, Byte, Shourt, Integer, Long, Float, Double Heap메모리에 존재 위의 데이터는 ..
-
List<VO> 정렬 DESC , ASC(2차 보완 완료)Java & 배경지식/Java 개발에 도움되는 코드들.. 2020. 7. 5. 22:40
사용법 CommonListSort.sortListVO(list, "getName", "DESC"); CommonListSort.sortListVO(list, "getName", "ASC"); public class RunMain { public static void main(String[] args) { TestVO vo; List list = new ArrayList(); for (int i = 1; i
-
프록시 패턴 - 백기선Java & 배경지식/패턴 2020. 6. 14. 17:42
프록시와 리얼 서브젝트가 공유하는 인터페이스가 있고, 클라이언트는 해당 인터페이스 타입으로 프록시를 사용한다. 클라이언트는 프록시를 거쳐서 리얼 서브젝트를 사용하기 때문에 프록시는 리얼 서브젝트에 대한 접근을 관리거나 부가기능을 제공하거나, 리턴값을 변경할 수도 있다. 리얼 서브젠트는 자신이 해야 할 일만 하면서(SRP) 프록시를 사용해서 부가적인 기능(접근 제한, 로깅, 트랜잭션, 등)을 제공할 때 이런 패턴을 주로 사용한다. 예제 public class Book { String title = "clean code"; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } ..