분류 전체보기 390

OAuth 2.0

OAuth 등장 배경 요즘 개발되는 서비스는 독립적으로 혼자만의 기능을 쌓아올리진 않습니다. 타 서비스의 기능을 본인의 서비스에 접목시켜서 사용자가 사용하기 편하며, 시너지를 발생시켜 더 놀라운 기능을 제공해주죠. 하지만, 이 때 타사의 서비스에서 소유자만 접근 가능 한 리소스를 접근하는 것이 문제가 됩니다. 별도의 인증과 인가 과정이 필요하기 때문이죠. OAuth를 적용하기 전 어떠한 방식으로 이를 구현하는 지 한번 보겠습니다. OAuth 적용 이전 나만의 캘린더는 유저만 접근 가능한 리소스인 구글 캘린더 정보에 접근해야 합니다. 이 때 캘린더에 접근하기 위해서, 다음과 같은 흐름을 거칩니다. 유저에게 구글 ID와 PW를 제공 받고, 이를 통해서 나만의 캘린더는 구글에 로그인을 합니다. 구글에선 이 로..

TIL 2023.08.14

[JAVA] GC

1. 메모리 구조 모든 프로그램은 메모리에 올라와야 실행할 수 있습니다. 따라서 프로그램에 사용되는 변수들을 저장할 메모리가 필요한데 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공합니다. 대표적으로 위와 같은 4가지 영역이 있습니다. Code 영역 실행한 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 합니다. CPU는 코드 영역에서 저장된 명령어를 하나씩 가져가서 처리합니다. Data 영역 전역 변수, 정적 변수가 저장되는 영역입니다. 프로그램의 시작과 함께 할당되어 프로그램이 종료되면 소멸합니다. Heap 영역 런타임 때, 새롭게 생성되는 객체가 저장되는 영역입니다. 더이상 참조되지 않는 객체는 JVM의 가비지 컬렉터에 의해 메모리 해제됩니다. Stack 영역 함수의 호출과 관계..

TIL 2023.08.04

DHCP, DNS에 대해 설명해 주세요.

DHCP 사용자가 인터넷을 이용하기 위해서는 본인의 IP주소, 서브넷 마스크, 디폴트 게이트웨이 등 각종 네트워크 환경을 설정해야 합니다. 여기서 DHCP를 사용하게 되는데, DHCP는 Dynamic Host Configuration Protocol의 약자로 네트워크 환경을 사용자가 일일히 설정하지 않고 동적 및 자동으로 할당해주는 프로토콜입니다. DHCP는 몇 계층 프로토콜인가요? 더보기 OSI 7계층 기준으로 Application layer인 7계층에 속합니다. DHCP는 어떻게 동작하나요? 더보기 DHCP의 IP 주소 동적 할당 과정은 총 4가지 단계로 이루어지게 됩니다. 먼저 사용자는 네트워크 어딘가에 있는 DHCP 서버를 찾기 위한 메시지를 브로드캐스트로 날리게 되는데, 이 과정을 DHCP Di..

웹소켓과 소켓 통신의 차이에 대해 설명해 주세요.

웹소켓과 소켓 통신의 차이에 대해 설명해 주세요. 소켓 : 프로세스가 드넓은 네트워크 세계로 데이터를 내보내거나 혹은 그 세계로부터 데이터를 받기 위한 창구 역할을 한다. 그리고 프로그래머에게 통신에 대한 물리적, 소프트웨어적 세세한 내용을 신경쓰지 않게 도와준다. 웹소켓: HTTP 통신의 특징인 Connectionless으로 인해 실시간 통신이 안되는 불편함을 해결하고자 나온 것으로 IP와 포트번호의 조합을 통해 주소를 특정하는 것이 소켓과 비슷하지만 일반 소켓은 OSI 7계층 중 4계층인 Transport layer에서 동작하는 것과 다르게, 웹 소켓은 7계층인 Apllication layer에서 동작합니다. 소켓과 포트의 차이가 무엇인가요? 더보기 네트워크에 연결되어 IP가 할당된 통신이 가능한 단..

[JAVA] [분할정복] Pro 쿼드압축 후 개수 세기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { ArrayList answer=new ArrayList(); public void recur(int[][] arr, int n){ int temp=0; // 배열의 모든 요소를 더함 for(int i=0; i

문제풀이/기타 2023.07.26

[JAVA] [투포인터] 백준 13144 List of Unique Numbers

문제 https://www.acmicpc.net/problem/13144 13144번: List of Unique Numbers 길이가 N인 수열이 주어질 때, 수열에서 연속한 1개 이상의 수를 뽑았을 때 같은 수가 여러 번 등장하지 않는 경우의 수를 구하는 프로그램을 작성하여라. www.acmicpc.net 코드 import java.util.*; import java.io.*; public class b13144 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; int n=I..

문제풀이/기타 2023.07.25

[JAVA] Pro 롤케이크 자르기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/132265?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int solution(int[] topping) { int answer = 0; // index: topping 원소, value: 해당 원소 개수 int[] dp1=new int[10001]; int[] dp2=new int[10001]; // 토핑 종류의 수 int count1=0; int count2=0; //..

문제풀이/기타 2023.07.24

[JAVA] [이진탐색] 백준 3020 개똥벌레

문제 https://www.acmicpc.net/problem/3020 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 코드 import java.io.*; import java.util.*; public class b3020 { static int[] seog; // 석순 static int[] jong; // 종유석 static int h; private static int upper(int target){ int start=0; int end=jong.length; while(starttarget){ end..

[JAVA] Pro 우박수열 정적분

문제 https://school.programmers.co.kr/learn/courses/30/lessons/134239 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { public ArrayList solution(int k, int[][] ranges) { ArrayList answer=new ArrayList(); // key: 우박 그래표 x좌표, value: 우박 그래표 y좌표 Map map=new HashMap(); int idx=0; map.put(0,k); while(k!..

문제풀이/기타 2023.07.21