본문 바로가기

전체 글

(359)
자바 스트림 라이브러리에 대하여 출처: https://futurecreator.github.io/2018/08/26/java-8-streams/ 스트림의 쓰임 예시: https://coding-factory.tistory.com/574 스트림 라이브러리란? 복합타입 자료구조의 집단연산을 내부반복을 통해 계산해 주는 라이브러리로써 자바 8부터 함수형 프로그래밍이 지원되면서부터 함께 제공된 라이브러리다. 즉, 람다표현식과 함께 등장한 라이브러리다. (스트림: 함수형 프로그래밍, 선언적 프로그래밍을 할 수 있게 해주는 라이브러리. 복합타입의 자료구조의 집단연산을 내부반복을 통해 계산해줌. ⇒ 이에 대한 교수님 설명: 스트림은 주로 집단연산할 때 사용한다는 것입니다. 주로… 중간연산, 최종 연산을 수행하는데, 최종 연산의 기본이 reduce입..
왜 Scanner가 아닌 BufferedReader인가! 출처: https://dlee0129.tistory.com/238#recentComments 정리! 1. 왜 Scanner가 아닌 BufferedReader를 사용해야 하는가? 입력속도가 더 빠르다! Scanner가 키보드 입력즉시 바로바로 프로그램에 전달되지만 BufferedReader는 버퍼가 다 채워지거나 개행 문자가 나타날 때까지 받아들인 후 프로그램에 전달됨. 2. 자바 응용 프로그램은 입력 장치로부터 직접 데이터를 읽지 않고 입력 스트림을 통해 데이터를 읽는다. 3. 그 외 BufferedReader사용시 BufferedReader br= new BufferedReader(new InputStreamReader(System.in));과 같이 형식이 복잡한지를 알수 있는내용. 자바를 처음 배울 ..
var에 대하여 출처: https://kjhoon0330.tistory.com/entry/Java-var-%ED%82%A4%EC%9B%8C%EB%93%9C%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC#3.%202.%20var%20%ED%82%A4%EC%9B%8C%EB%93%9C%EC%97%90%20%EA%B4%80%ED%95%9C%20%EC%9D%B4%EC%95%BC%EA%B8%B0%F0%9F%92%AC 정리!! var 이란? Type Inference(타입 추론)로 제네릭, 람다식에서도 볼수 있다. 우변, 우측을 보고 타입을 유추하며 컴파일시 타입추론을 한다. 즉, 바이트 코드에서는 추론된 타입이 들어갈 테니 런타임 오버헤드가 발생하지 않는다. 0. 들어가며🚶 Java 10부터 도입된 var에 대..
School algo09 탐욕적(Greedy) 알고리즘2. # 크루스칼 #union-find 서로소인 집합을 찾는 집합 자료구조 알고리즘 A. 가중치 무방향 그래프에서 최소신장트리 구하기 Sol1) 우선순위 큐를 이용한 Prim 알고리즘(인접리스트 이용) //원본!!!!!! 좀 더 실용적인 코드는 아래에! //인접 행렬=방향, 밀집, (무방향도 인접행렬로 표현하는 것이 빈번) //인접 리스트=무방향, 희소 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.PriorityQueue; ..
2. Strategy Pattern 전략 패턴은 언제 쓰이나? 1. 실행시간에 클라이언트 클래스가 가지는 하나 혹은 다수의 종류의 전략을 실행시간에 변경하고자 할때. 2.한 클래스가 여러 행위를 조건문을 통해 정의할때 (수업시간에 전략패턴이 쓰이는 경우의 대표적인 경우가 한클래스가 여러행위를 조건문을 통해 정의해야 할 경우에 전략패턴이 쓰인다고 배웠다. 아래 유튜브 영상에서 제시하는 경우가 이 경우에 해당한다. SearchButton이라는 클래스 내에 여러행위가 조건문을 통해 정의되어 있음) 전략 패턴의 형식은 어떻게 되나? 각각의 전략을 클라이언트 클래스와 분리하여 전략 인터페이스와 전략 클래스로 구현하고 클라이언트 클래스(Context class)들은 느슨한 결합을 위해 그 전략 인터페이스를 맴버로 갖는다(has-a) 이러한 검색화면을..
1. Singleton pattern 싱글톤 패턴이란? 한 클래스의 객체를 한번만 생성하도록 제한하고 이 객체에 대한 광역적 접근을 제공하는 패턴 출처: https://www.youtube.com/watch?v=lJES5TQTTWE&t=1s 어떤 프로그램내에서 특정 클래스의 객체가 단 하나만 만들어져야 하는 경우에 쓰임! 예를들어 Modile phone에서 다크모드로 설정시 어떠한 앱을 사용하건 간에 모두 다크모드가 적용되어야 함. 이것은 세팅을 관리하는 객체는 반드시 같은 것을 사용해야 한다는 말이다. 아래는 Settings라는 클래스로 darkMode여부와 fontSize를 상태로 지닌다. 그리고 안드로이드 프로그래밍을 해보면 페이지마다 클래스가 만들어지는데, 예를들면 아래와 같다. 이 클래스들을 대상으로 메인함수를 아래와 같이 구성해보..
HTTP구조, AJAX란? 참고:  https://velog.io/@surim014/AJAX%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80https://www.youtube.com/watch?v=avfIUwDG2d8https://www.youtube.com/watch?v=ZFlnrGgdekI  AJAX란? 여러기술들(DOM, HTML, XmlHttpRequest, JS 등)이 합쳐져 만들어진 클라이언트와 서버간의 비동기 방식으로 데이터를 교환하는 웹페이지 동적갱신 프로그래밍 방식(통신방식). 비동기 방식으로 데이터를 교환하여 동적으로 데이터가 갱신되게 하는 가장 큰 요인이 XMLHttpRequest라는 비동기 통신을 가능케하는 Web API이다(메서드와 프라퍼티 제공). 즉, Ajax란 다양한 ..
어노테이션의 의미. 출처: https://hbase.tistory.com/169 https://gosu-developer.tistory.com/22 어노테이션 이란?사전적 의미는 주석이지만 소스코드에 추가해서 사용할 수 있는 메타 데이터의 일종. 즉, 애플리케이션이 처리해야할 데이터가 아닌(프로그래밍 언어에 영향을 미치지 않음) 컴파일,빌드, 런타임 과정에서 코드를 어떻게 처리해야하는지를 알려주기 위한 추가 정보 에너테이션 범위에 있는 코드는 에너테이션이 의미를 갖는 특정 프로그램에서만 유효함. 다른 프로그램 한테는 영향을 미 치지 않음. 자바 문법 자체를 바꿀 필요도 없고 특정 프로그램 한테만 정보(ex. 설정정보)를 제공하는 것임. 자바의 어노테이션은 소스코드에 추가해서 사용할 수 있는 메타 데이터의 일종. 메타 데이터..