ALL
분산 컴퓨팅, RPC vs. XML Web Service 비교
📌 분산 컴퓨팅(Distributed Computing)이란?분산 컴퓨팅(Distributed Computing)이란, 말 그대로 여러 대의 컴퓨터가 분산되어 하나의 일을 해결하는 개념이다. 대량의 데이터 및 연산을 처리해야 하는 거대한 문제를 해결하고자, 원격지에 존재하는 여러 대의 컴퓨터들을 이용하여 협업하는 것으로, 대규모의 데이터베이스와 빅데이터를 분산하여 일을 처리하거나, 여러 프로그램들을 분산시켜 원격으로 실행하는 경우이다. 마치 하나의 컴퓨터인 것처럼 동작하며, 자원의 공유와 협업이 가능하기 때문에 효율적으로 활용이 가능하고, 확장성이 우수하다. ✅ 장점자원의 활용이 효율적자원의 공유와 협업이 가능 확장성이 좋다.빠른 성능을 제공 원격 컴퓨터를 이용하여 협업한다고 하는데,, 원격 컴퓨터를 어..
[Spring] 공통 필드 하나로 묶기! || BaseEntity, JpaAuditing
들어가며 Member, Order, Board 등 다양한 엔티티를 생성하여 사용하다보면, 반복되는 공통 속성이 존재하게 됩니다. 예를 들면, 생성일, 수정일, 식별자 등이 있으며, 보통 하나로 묶어 BaseEntity를 생성하여 각 엔티티가 상속받을 수 있도록 구현하며 사용하곤 합니다. 본 포스팅에는 공통 속성을 하나로 묶어 BaseEntity라는 부모 클래스를 생성하는 내용을 소개합니다. 📌 공통 속성public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String password; private LocalDateTime crea..
[Algorithm/Python] 계수 정렬(Count Sort)이란?? || Sort
📌 계수 정렬(Count Sort)계수 정렬이란, 리스트의 원소의 개수를 세어, 개수만큼 출력하여 정렬하는 방식이다. 예를 들어 arr = [7, 5, 9, 0, 3, 1, 6, 2, 9, 1, 4, 8, 0, 5, 2] 를 정렬해본다고 하자면, 각 원소별로 몇 개가 존재하는지 수를 센 후, 인덱스 0을 시작으로 각 개수만큼 수를 출력해내어 정렬하는 방식이다.위의 그림처럼, 리스트의 데이터에 해당하는 인덱스의 값을 1씩 추가하여 해당 원소가 몇 개인지 수를 세어준다. 따라서, 인덱스 0부터 차례대로 세어진 수만큼 반복 출력해주면 정렬된 리스트를 확인해볼 수 있다. ✅[ CODE ]arr = [7, 5, 9, 0, 3, 1, 6, 2, 9, 1, 4, 8, 0, 5, 2] def count(arr): ma..
[Algorithm/Python] 퀵 정렬(Quick Sort)이란? || Sort
📌 퀵 정렬(Quick Sort)퀵 정렬(Quick Sort)이란 기준 데이터인 피벗(pivot)을 정하고, 피벗보다 큰 데이터와 작은 데이터의 위치를 변경하는 정렬 방식이다. 피벗이 설정되어 리스트가 분할되는 방법에 따라 여러 퀵 정렬이 구분된다고 하는데, 호어 분할 방식에 따른 코드 구현을 진행해보았다. 호어 분할 방식에는 리스트에서 첫 번째 데이터를 피벗으로 설정한다는 규칙이 있다. 1️⃣ 리스트의 첫 번째 데이터를 피벗으로 설정한 후, 리스트의 왼쪽에서 오른쪽으로 이동하며 피벗보다 큰 데이터를 찾는다. 또한, 리스트의 오른쪽에서 왼쪽으로 이동하며 피벗보다 작은 데이터를 찾는다. 2️⃣ 큰 데이터와 작은 데이터의 위치를 서로 바꾼다. 3️⃣ 이와 같은 과정을 반복하되, 큰 데이터의 위치와 작은 데이..
[Algorithm/Python] 삽입 정렬(Insertion Sort)이란? || Sort
📌 삽입 정렬(Insertion Sort)삽입 정렬은 순차적으로 데이터를 확인하며, 적절한 위치에 삽입해주는 정렬 방식이다. 그림을 보면, 인덱스 1번째 수부터 시작하여 차례대로 각자 적절한 위치에 삽입해주는 것을 확인해볼 수 있다. 적절한 위치인 곳을 찾는 방법은, 빨간 박스로된 수를 기준으로 왼쪽으로 한 칸씩 이동하며 값을 비교한다. 빨간 박스의 수보다 작은 수를 만나게 되는 순간, 바로 그 위치에 삽입해주면 된다. ✅ [ CODE ]arr = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(1, len(arr)): idx = i for j in range(i, -1, -1): if arr[i] < arr[j]: idx = j val = arr[i] arr[idx +..
[Algorithm/Python] 선택 정렬(Selection Sort)이란? || Sort
📌 선택 정렬(Selection Sort)그림을 보면, 파란색으로 칠해진 수들 중 가장 작은 수를 골라, 빨간색으로 칠해진 수와 바뀌는 것을 확인해볼 수 있다. 이처럼, 선택 정렬은 가장 작은 수를 차례대로 선택하여 정렬하는 방식이다. ✅ CODEarr = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(arr)): for j in range(i + 1, len(arr)): if arr[i] > arr[j]: temp = arr[i] arr[i] = arr[j] arr[j] = temp print(arr)매번, 작은 수가 나올 때마다 위치를 바꿔주어 주도록 구현을 해보았는데, 작은 수가 나올 때마다 바꿔주는 것이 조금 비효율 적인 것 같다는 생각이 들었다. ✅ C..
[Programmers/Python] H-Index || 정렬(Sort)
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr프로그래머스 파이썬 H-Index 풀이 42747더보기문제 설명) H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이..
[Programmers/Python] 타겟 넘버 || DFS/BFS
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr프로그래머스 타겟 넘버 파이썬 16173더보기문제 설명) n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항) 주어지는 숫자의 개수는..
async-await & React Router || React Hook useEffect has a missing dependency 경고 해결
📌 async - await fetch로 api에 접속하는 방식 중에 then을 이용하여 response를 받아오곤 했는데, async-await를 이용하는 것이 더 보편적이라고 한다. then useEffect(() => { fetch( `https://yts.mx/api/v2/list_movies.json?minimum_rating=9&sort_by=year` ) .then((response) => response.json()) .then((json) => { setMovies(json.data.movies); setLoading(false); }); }, []); async - await const getMovies = async () => { const json = await ( await fet..
'authorizeRequests()' is deprecated 해결 || Spring Security Configuration
기존에 사용해오던 방식대로 SecurityConfig를 만들어서 403 Error를 해결하고자 하였는데, authorizeRequests()가 deprecated 되었다고 한다. WebSecurityConfigurerAdapter도 deprecate되어 빈을 등록하는 방식으로 바꿔주었었는데, 이것도 바꿔보자!아래와 같이 변경하여 사용할 수 있다.http .authorizeRequests() .requestMatchers("/admin/**").hasRole("ADMIN") .requestMatchers("/**").hasRole("USER") .and().formLogin(); return http.build();antMatchers를 requestMatchers로 변경. authorizeRequest는..