일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- map
- app:compiledebugkotlin
- Next.js
- 페이지네이션
- array
- 배열중복요소제거
- app.post
- TS
- meatadata
- Filter
- generic
- Spring
- 이진탐색
- mainapplication.kt
- interface
- 타입스크립트
- 스크롤이벤트
- 글또10기
- 안드로이드빌드에러
- javascript
- 리액트네이티브아이콘
- reactnative
- extends
- set
- react
- supabase 페이지네이션
- 상속
- materialicons
- async
- 슬라이딩윈도우
- Today
- Total
목록분류 전체보기 (162)
rhanziy
🚩 목표 회원가입 시 DB에 저장된 adminCk 값이 1이면 관리자, 0이면 사용자를 바탕으로 관리자 계정이면 관리자 페이지(/admin/main)에 접속이 가능하고, 사용자 계정이거나 로그인 상태가 아니면 관리자 페이지(/admin/main)에 접속하지 못하도록 Interceptor를 적용한다. 사용할 인터셉터의 적용 대상을 정확히 타겟팅하기 위해 Controller의 RequestMapping 어노테이션 부분과 login.jsp에서 로그인 관련처리 url을 .do로 변경했다. Interceptor 기본 설정 1. spring-web라이브러리를 pom.xml에 추가한다. org.springframework spring-webmvc ${org.springframework-version} 2. inter..
1. 정의 및 사용예시 인터셉터(Interceptor)란? 컨트롤러(Controller)의 '핸들러(Handler)'를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 일종의 필터. intercept라는 단어는 '낚아채다'라는 의미이다. 해당 단어의 의미와 같이 사용자 요청에 의해 서버에 들어온 Request 객체를 컨트롤러의 핸들러(사용자가 요청한 url에 따라 실행되어야 할 메서드, 이하 핸들러)로 도달하기 전에 낚아채서 개발자가 원하는 추가적인 작업을 한 후 핸들러로 보낼 수 있도록 해주는 것. 개발자는 특정 Controller의 핸들러가 실행이 되기 전이나 후에 추가적인 작업을 원할 때 Interceptor를 사용할 수 있다. ex) 개발자가 관리자 계정만이 실행할 수 있는 Contr..
첫줄의 ROW_NUMBER()설명 보충 ROW_NUMBER() 은 윈도우 함수 중 하나로 결과 집합의 행 일련 번호를 매겨주는 함수이다. 일반적으로 PARTITION BY 구문과 함께 사용되며 특정 기준으로 나뉘어진 각 파티션의 행들은 ROW_NUMBER()에 의해 '1'부터 차례대로 넘버링 된다. 순위 동률을 메기는 RANK()와는 다르게 모든 행의 번호를 고유하게 순차적으로 지정하는 것이 특징이다. 구문은 다음과 같다. ROW_NUMBER() OVER ([PARTITION BY value_expression, ... [n]] order_by_clause) * OVER : 쿼리 결과 집합 내의 윈도우 또는 사용자 지정 행 집합을 정의한다. OVER 절에 윈도우 함수를 사용하여 이동 평균, 누적 집계, ..
OUTER JOIN은 조인하는 여러테이블에서 한 쪽에는 데이터가 있고, 한 쪽에는 데이터가 없는 경우, 데이터가 있는 쪽 테이블의 내용을 모두 출력하는 것입니다. 즉, 조건에 맞지 않아도 해당하는 행을 출력하고 싶을 때 사용할 수 있습니다. OUTER JOIN 종류 LEFT OUTER JOIN : 조인문의 왼쪽에 있는 테이블의 모든 결과를 가져온 후 오른쪽 테이블의 데이터를 매칭, 매칭되는 데이터가 없는 경우 NULL로 표시한다. SELECT 검색할 컬럼 FROM 테이블명 A LEFT OUTER JOIN 테이블명2 B ON A.컬럼명 = B.컬럼명; RIGHT OUTER JOIN : 조인문의 오른쪽에 있는 테이블의 모든 결과를 가져온 후 왼쪽 테이블의 데이터를 매칭, 매칭되는 데이터가 없는 경우 NULL..
제네릭은 클래스와 메소드에서 사용할 수 있는데 제네릭 타입을 선언한 클래스를 제네릭 클래스라 한다. 제네릭 클래스를 이용하면 하나의 클래스에서 서로 다른 형태의 데이터 를 받아와 한꺼번에 처리할 수 있다. 기존의 인스턴스 변수를 Object 데이터 형식으로 지정해 받는다면 package Chap_09.coffee; public class CoffeeByName { public Object name; // Integer, Double, String ... public CoffeeByName(Object name) { this.name = name; } public void ready() { System.out.println("커피 준비 완료 : " + name); } } 주문고객 번호와 주문고객 이름을 확..
이 를 제네릭(Generics)이라 하는데, 이 안에 어떠한 타입을 선언해주어 해당 ArrayList, List 등이 사용할 객체의 타입을 지정해준다는 뜻이다. 이는 다룰 객체의 타입을 미리 명시하여 객체의 형변환을 사용할 필요없게 하며, 내가 사용하고 싶은 데이터 타입만 사용할 수 있게 해주는 효과가 있다. package Chap_09; public class Generics { public static void main(String[] args) { // 제네릭스 > 객체 지원, 서로 다른 타입이여도 처리 가능함, 불필요한 코드 중복을 줄여준다. // refer 클래스로 변환 필요 Integer.parseInt() , String.valueOf(), Double.toString() Integer[] ..
추상클래스와 인터페이스를 구현한 패키지 구조 추상 클래스(Abstract Class)는 추상 메서드를 선언해 놓고 상속을 통해 자식 클래스에서 메서드를 완성하도록 유도하는 클래스이다. 이러한 특성 탓에 미완성 설계도 라고 표현하기도 한다. 추상클래스는 상속을 위한 클래스이기 때문에 따로 인스턴스를 생성할 수 없다. package Chap_08.camera; public abstract class Camera { public void takePicture() { System.out.println("사진을 촬영합니다."); } public void recordVideo() { System.out.println("동영상을 녹화합니다."); } public abstract void showMainFeature(..
상속, method overriding을 사용해 햄버거 만들기 package HamBurger; class HamBurger { public String name; public HamBurger() { this("햄버거"); } protected HamBurger(String name) { this.name = name; } public void cook() { System.out.println(this.name + "를 만듭니다."); System.out.println("빵 사이에 들어가는 재료는?"); System.out.println("> 양상추"); System.out.println("+ 패티"); System.out.println("+ 피클"); } } class CheeseBurger exte..