일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 타입스크립트
- meatadata
- 페이지네이션
- 스크롤이벤트
- supabase auth
- 안드로이드빌드에러
- react
- set
- Next.js
- supabase authentication
- array
- 글또10기x코드트리
- 배열중복요소제거
- 글또10기
- interface
- TS
- async
- app.post
- extends
- Spring
- map
- javascript
- reactnative
- 상속
- xlsx-js-style
- 이진탐색
- generic
- Filter
- 슬라이딩윈도우
- supabase 페이지네이션
- Today
- Total
목록전체 글 (167)
rhanziy

vue에서 html에 자바스크립트 데이터를 바인딩하는 방법은 {{ 변수명 }} 콧수염 문법을 사용하면 된다. 변수명은 어떻게 담냐!? script 태그내에 export default 안에 data() { return { 여기에 obj 형식으로 담으면 댄다. } } 이걸 데이터 보관함이라고 하자. product라는 데이터는 array형식으로 넣었는데, 사용할때는 뭐 배열 꺼내오는 방식으로 쓰면 된다. 원룸샵 {{ products[0] }} {{ price1 }} 만원 {{ products[1] }} 70만원 {{ products[2] }} 70만원 보면 html속성 값(class나 style)에도 데이터 바인딩을 할 수 있는데, html속성에 사용할때는 콧수염 문법이아닌 : 속성name = "변수명" 이렇..
@ResponseBody @ResponseBody 는 핸들러 메소드에 붙일 수 있는 어노테이션으로 컨트롤러가 데이터를 반환할 때 HttpMessageConverter 를 사용해서 자바 객체를 응답 본문(body) 메시지를 만들어 반환할 수 있게 도와준다. @RestController를 사용하면 자동으로 모든 핸들러 메소드에 @ResponseBody가 적용된다.. @Controller public class AccountController { @GetMapping("/accounts/{id}") @ResponseBody public Account handle(@PathVariable long id) { // ... } } @RestController public class AccountController ..
@RequestParam @RequestParam 어노테이션은 사용자가 요청시 전달하는 값을 Handler(Controller)의 매개변수로 1:1 맵핑할때 사용되는 어노테이션이다. @Controller public class TestController { @GetMapping("/") public String getTestPage(@RequestParam("name") String name) { System.out.println("이름 : " + name); return "test"; } } 예를 들어 사용자가 /?name=test 로 요청한다면, 위 핸들러의 매개변수인 name 에 "test"가 매핑됨. @ModelAttribute 우선 @ModelAttribute는 메소드레벨, 메소드의 파라미터 두..

Database에 저장되어있는 페이지 개수만큼 페이지 목록을 출력하도록 구현된 경우, 1. 게시판 데이터가 많을수록 가독성이 떨어지고 2. 많은 데이터를 한 페이지에 불러오고 출력하는데 있어 시스템의 자원을 많이 사용한다. 는 문제점이 있다. 그래서 페이징 처리에 사용할 수 있는 쿼리의 종류에 대해 알아보자. 페이징 쿼리 1. Rownum을 통한 방식(Oracle, MariaDB) 2. LIMIT를 통한 방식(MySQL, MariaDB) 3. TOP을 통한 방식(MSSQL) - Rownum 모든 SQL에 그대로 삽입해서 사용할 수 있는 가상의 컬럼(Column)이다. 해당 컬럼 값은 SQL이 실행되는 과정에서 발생하는 행의 일련번호를 뜻한다. 쉽게 말해 select를 통해 출력되는 결과 테이블에 행(Ro..

대부분의 기능 구현 작업순서는 VO, DTO(도메인 모델 계층) -> Mapper(퍼시스턴스 계층) -> Service(비즈니스 계층) -> Controller(제어 계층) -> JSP(프리젠테이션 계층) 순으로 작업된다. 도메인 모델 계층 도메인 모델은 각 계층간의 전달 되어야 할 정보를 담는 객체 입니다. 해당 객체에 담긴 데이터들은 캡슐화해서 보관됩니다. ( 데이터의 접근자 private / getter,setter를 통해 데이터 접근) 퍼시스턴트 계층 DAO 계층이라고도 불립니다. DB 질의를 통해서 데이터 러치를 담당하는 객체입니다. 비즈니스 계층 핵심 업무 로직의 구현과 그에 관련된 데이터의 적합성 검증 외에도 다양한 부가적인 구현을 수행합니다.(ex. 트랜잭션 처 리, 다른 계층들간 통신을 ..

🚩 목표 회원가입 시 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 절에 윈도우 함수를 사용하여 이동 평균, 누적 집계, ..