전체 글
-
[백준 21736번] 헌내기는 친구가 필요해 - JAVAPS 2023. 10. 3. 23:44
문제 링크 너비 우선 탐색, 깊이 우선 탐색, 그래프 이론, 그래프 탐색을 통해 풀이할 수 있는 문제이다. 접근 방법 문제 설명에 나와있듯 주어진 위치에서 위, 아래, 좌, 우로 배열을 탐색해 타겟 찾고, 그 수만큼 카운트한다. 조건 벽(‘X’)으로 둘러 쌓인 곳은 접근할 수 없고, 배열의 크기를 벗어난 범위 역시 마찬가지이다. 타겟(‘P’)를 발견하더라도 더 탐색할 수 있다면 종료하지 않고 계속해서 탐색한다. 만약 탐색이 종료되었고, 타겟을 찾은 개 수가 0이라면 'TT’를 출력한다. DFS 혹은 BFS는 기본적으로 배열을 탐색할 때 무한 루프에 빠지지 않기 위해 방문 여부를 확인해야 할 필요가 있다. 추가로 이번 문제에선 시작 지점이 주어져 있으므로 탐색 배열을 채워 나갈 때 해당 위치를 미리 저장하..
-
모든 웹은 APIWEB 2023. 9. 30. 14:39
API ⌨️ 웹 API는 웹 서버와 웹 브라우저 간의 애플리케이션 처리 인터페이스를 의미한다. 모든 웹 서비스는 API 이지만 모든 API가 웹 서비스는 아닌데 이는 API가 월드 와이드 웹 이전에 만들어졌기 때문에 JAVA API, 서비스 API 등 API 에 대한 다양한 용어가 존재한다. API는 정의 자체로도 추상적이고, 동시에 다양한 해석이 가능해 처음 API를 접한다면 이해가 어려운데 간단히 표현하자면, API는 요청과 응답의 연속으로 데이터나 기능을 제공한다. 그렇다면 클라이언트는 어떤 방법으로 API를 사용하고 API는 어떻게 웹 서버에 요청을 전달 할 수 있을까? 정답은 정의된 코드의 실행이다. API와 UI 관계 ⌨️ 누구나 웹 브라우저의 주소창을 통해 API 요청을 작성하고 전달해 코드..
-
동적인 웹의 첫 걸음 REST APIWEB 2023. 9. 30. 14:38
REST API ⌨️ 모든 웹은 API 포스트를 통해 API가 어떤 역할을 하는지 배울 수 있었고 추가로 최신 웹은 REST API로 구성되어 동작하고 있다는걸 간단하게 알아보았는데, API면 API지 Representational State Transfer API 라는 건 도대체 뭘까? 여러 블로그를 찾아보고 생각을 종합해 보니 REST API는클라이언트와 서버 간에 데이터를 주고, 받을 때 사용하는 규칙으로 큰 틀에서 봤을 때 API가 갖는 특성과 일치한다. 이왕 웹 사이트를 만들고 데이터를 주고받을 거 정해진 규칙 대로 잘 만들어 잘 쓰자는 게 목표인데 여기에 REST를 더 해 어떻게 잘 만들고 어떻게 잘 쓸지를 상세하게 정의한 API TODO 리스트라고 생각 할 수 있겠다. RESTful하지 못하..
-
Browser RenderingWEB 2023. 9. 30. 14:38
개념 브라우저 렌더링이란 브라우저가 서버로부터 요청해 받은 내용을 브라우저 화면(VIEW)에 표시해주는 작업을 말한다. 즉 브라우저가 서버로부터 HTML, CSS, JavaScript 문서를 전달 받아 브라우저 엔진이 각 문서를 해석해 브라우저 화면을 구성한다. 브라우저 렌더링은 크게 클라이언트 사이드 렌더링 방식과 서버 사이드 렌더링 방식으로 나눌 수 있다. 📌 검색 엔진 최적화 (SEO) 검색 엔진 결과 페이지에서 웹 사이트 또는 웹 페이지의 상위 노출도를 높이는 작업을 의미한다. 구글, 네이버 등 각 브라우저의 검색 엔진의 특성에 따라 차이가 발생 할 수 있다. 메타 태그를 적절히 설정 하는것으로 효율을 높힐 수 있다. 오픈 그래프(Open Graph) 태그를 적절히 설정하는것으로 효율을 높힐 수 ..
-
OAuth 2.0 과 Spring SecuritySpring/Security 2023. 9. 30. 14:31
OAuth는 사용자가 제3자 애플리케이션에 대한 액세스 권한을 부여할 수 있도록 중간 매개체 역할을하는 보안 프레임워크로 웹 및 모바일 애플리케이션에서 사용자 인증 및 권한 부여를 위한 개방형 표준 프로토콜이다. 이를 통해 사용자는 자신의 계정 정보를 직접 공유하지 않고도 제 3 애플리케이션에 대해 제한된 액세스 권한을 제공할 수 있다. 스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크로 인증(Authenticate)과 인가(Authorize)를 담당하는 프레임워크를 말한다. 스프링 시큐리티에서는 주로 서블릿 필터(filter)와 이들로 구성된 필터체인으로의 구성된 위임모델을 사용하고 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개..
-
계산 필드 생성하기Database/SQL 2023. 9. 29. 17:21
10분 SQL 7장 개요 계산 필드 이해하기 필드 연결하기 수학 계산 수행하기 사용 개요 계산 필드기 무엇인지, 어떻게 생성하는지 알아보고 우리가 사용하는 응용 프로그램에서 계산 필드를 참조하기 위해 별칭을 사용하는 방법도 학습한다. 계산 필드 이해하기 필드란 기본적으로 열과 같은 뜻이며, 종종 서로 바꿔 부르기도 한다. 하지만 데이터베이스 열은 일반적으로 Column 으로 부르며, Field라는 용어는 보통 계산 필드와 함께 사용된다. 계산 필드는 테이블에 저장한 데이터와 응용 프로그램이 원하는 형식이 아닐 경우 사용할 수 있다. 데이터를 있는 그대로 가져온 후 사용 목적에 맞게 바꾸기보다 데이터베이스에서 바로 변환된 혹은 계산된 데이터를 가져올 수 있는 방법이 바로 계산 필드이다. 계산 필드는 데이터..
-
고급 테이블 조인 생성Database/SQL 2023. 9. 29. 17:21
목표 외부 조인에 대해 학습한다. 목차 [테이블 별칭 사용하기](#테이블 별칭 사용하기) [다른 조인 타입](#다른 조인 타입) [그룹 함수와 조인](#그룹 함수와 조인) [조인과 조인 조건](#조인과 조인 조건) 테이블 별칭 사용하기 SQL에서는 열 이름과 계산 필드 그리고 테이블 이름에도 별칭을 사용할 수 있다. 테이블 이름에 별칭을 사용하는 이유는 크게 두 가지다. 사용하는 SQL 명령문의 수를 줄이기 위해 하나의 SELECT 문 내에서 같은 테이블을 여러 번 사용하기 위해 SELECT cust_name, cust_contact FROM Customers AS C, Orders AS O, OrderItems AS OI WHERE C.cust_id = O.cust_id AND OI.order_num ..
-
데이터 그룹핑Database/SQL 2023. 9. 29. 17:20
목표 데이터를 그룹핑하는 방법을 배워 테이블에 있는 데이터의 일부분을 요약한다. 이를 위해 SELECT 문의 GROUP BY와 HAVING 알아보자 목차 데이터_그룹핑_이해하기 그룹_필터링 SELECT문_순서 데이터_그룹핑_이해하기 수 많은 데이터 중 내가 원하는 각 판매처의 제품 수를 구하거나, 하나의 제품만을 판매하는 판매처 혹은 10개 이상을 파는 판매처가 몇 개인지 확인하고 싶다면 어떻게 해야 할까? 이럴 때 그룹핑이 필요하다. 그룹핑은 데이터를 논리적으로 나눠주기 때문에 각 그룹에 대한 집계 연산을 수행할 수 있다. 그룹 생성하기 그룹은 SELECT 문에서 GROUP BY 절을 사용해 생성할 수 있다. SELECT vend_id, COUNT(*) AS num_prods FROM Products ..