본문 바로가기
728x90

전체 글172

Call by Value 와 Call by reference 차이는 무엇일까요?? 함수 호출 방법은 크게 두 가지가 있다. Call by value(값에 의한 호출)은 인자로 받은 값을 복사하여 처리를 한다. 장점 : 복사하여 처리하기 때문에 안전하다. 원래의 값이 보존이 된다. 단점 : 복사를 하기 때문에 메모리가 사용량이 늘어난다. Call by reference(참조에 의한 호출)은 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 준다. 장점 : 복사하지 않고 직접 참조를 하기에 빠르다. 단점 : 직접 참조를 하기에 원래 값이 영향을 받는다. 자바 에서는 기본적인 매개변수는 Call by Value 이지만, 예외적으로 배열 과 클래스는 참조 변수로 Call by reference로 작동한다. https://blog.kakaocdn.net/dn/4aMO7/btrCye8rY71/.. 2023. 1. 26.
선택 정렬 과 시간 복잡도 선택 정렬 알고리즘은 가장 원시적인 방법이다. 데이터가 무작위로 여러 개 있다고 가정하자. 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그 다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복한다. 다음은 선택 정렬을 사용하여 데이터를 오름차순으로 정렬한 코드다. import java.util.Arrays; public class Main { public static void main(String[] args) { int []arr = {7, 5, 9, 0, 3, 1, 6, 2, 4, 8}; int Index = 0; //가장 적은 원소의 인덱스 for(int i = 0; i < arr.length; i++){ for(int j = i + 1; j < arr.length;.. 2023. 1. 26.
이터레이터 패턴이란 무엇인가? 이터레이터 패턴 이터레이터 패턴(iterator pattern)은 이터레이터(iterator)를 사용하여 컬렉션(collection)의 요소들에 접근하는 디자인 패턴이다. 순회 할수 있는 여러 가지 자료형의 구조와는 상관 없이 이터레이터라는 하나의 인터페이스로 순회가 가능하다. const mp = new Map(); mp.set('a', 1); mp.set('b', 2); mp.set('c', 3); const st = new Set(); st.add(1); st.add(2); st.add(3); for (let a of mp) console.log(a); for (let b of mp) console.log(b); /* ['a', 1] ['b', 2] ['c', 3] 1 2 3 */ 분명히 다른 자료구.. 2023. 1. 26.
컴포넌트 스캔를 이용한 스프링 빈 등록방법 보호되어 있는 글 입니다. 2023. 1. 25.
백준 1486번 등산 1. 문제 설명 문제 링크 세준이는 등산광이다. 세준이는 높은 곳에서 도시를 내려다 보는 것을 좋아한다. 하지만, 겁이 많은 세준이는 어두워지기 전에 호텔로 내려오려고 한다. 세준이가 가려고하는 산의 지도가 입력으로 주어진다. 산의 지도를 M이라고 했을 때, M[i][j]는 (i,j)의 높이가 M[i][j]라는 것을 의미한다. 그 값이 'A'-'Z'일 때는 0-25를 뜻하는 것이고, 'a'-'z'일 때는, 26-51을 뜻한다. 세준이의 호텔은 (0,0)에 있다. 그리고, 세준이는 지금 위치에서 바로 인접한 정수 좌표 중 높이의 차이가 T보다 크지 않은 곳으로만 다닐 수 있다. 만약 세준이가 현재 위치에서 높이가 낮은 곳이나 같은 곳으로 이동한다면 시간은 1초가 걸린다. 하지만 높은 곳으로 이동한다면 두 .. 2023. 1. 24.
프록시 패턴 과 프록시 서버 프록시 패턴 과 프록시 서버 프록시 객체는 디자인 패턴 중 하나인 프록시 패턴이 녹아들어 있는 객체이다. 프록시 패턴 프록시 패턴(proxy pattern)은 대상 객체(subject)에 접근 하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴이다. ![img](https://thebook.io/img/080326/044.jpg) 이를 통해 객체의 속성, 변환 등을 보완하며 보안, 데이터 검증 ,캐싱, 로깅에 사용한다. 이는 앞서 설명한 프록시 객체로 쓰이기도 하지만 프록시 서버로도 활용한다. 프록시 서버에서의 캐싱 캐시 안에 정보를 담아두고, 캐시 안에 있는 정보를 요구하는 요청에 대해 다시 저 멀리 있는 원격 서버에 요청하지 않고 캐시 안에 있는 데이터를 활용.. 2023. 1. 24.
728x90