일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 배열중복요소제거
- react
- javascript
- Next.js
- 이진탐색
- reactnative error
- array
- 리액트네이티브아이콘
- 상속
- async
- forwardref type
- extends
- err_connection_refused
- 타입스크립트
- app.post
- 안드로이드빌드에러
- set
- mainapplication.kt
- Filter
- npm에러
- materialicons
- reactnative
- app:compiledebugkotlin
- map
- Spring
- generic
- TS
- interface
- 슬라이딩윈도우
- 스크롤이벤트
- Today
- Total
목록Java (22)
rhanziy
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bPFBCm/btsofqQfjjE/mUVndL5Fol72WjcAiekhpk/img.png)
프로그래머스 코테 lv.1 달리기 경주 풀이 중에 코드는 통과됐는데 시간초과로 안넘어간게 있어서 구글링하던 도중 새롭게 알게된 개념 정리 포스팅. 위 동영상 요약내용임ㅋ Map - key-value를 저장하는 추상자료형 ADT(Abstract data type) - 같은 key를 가지는 쌍은 1개만 존재(key 중복x) - associative array, dictionary라고 불리기도 함 ex) 전화번호-이름 저장, 인기투표 할 때의 데이터 저장구조 Hash table - 배열과 해시함수를 사용하며 map을 구현한 자료구조 - *일반적으로 상수시간으로 데이터에 접근하기 때문에 빠름 상수시간이란 bigO표기법에 의하면 O(N)으로 시간복잡도 성능이 가장 좋음 Hash function - 임의의 크기를 ..
https://rhghdrms.tistory.com/4 Eclipse 단축키 주석 Ctrl + Shift + / : 블록을 주석으로 처리 (/* */) Ctrl + Shift + \ : 블록 주석을 해제 Ctrl + / : 한줄 or 블록 주석 처리 / 해제 (//) 검색 Ctrl + F : 키워드 검색 (해당 소스에서만) Ctrl + H : 키워드 검색 (프 rhghdrms.tistory.com 주석 Ctrl + Shift + / : 블록을 주석으로 처리 (/* */) Ctrl + Shift + \ : 블록 주석을 해제 Ctrl + / : 한줄 or 블록 주석 처리 / 해제 (//) 검색 Ctrl + F : 키워드 검색 (해당 소스에서만) Ctrl + H : 키워드 검색 (프로젝트 전체에서) Ctrl ..
@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는 메소드레벨, 메소드의 파라미터 두..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tKwPV/btscYVLXC1h/TKWwYsv3Ge5cvotGexiLxk/img.png)
Database에 저장되어있는 페이지 개수만큼 페이지 목록을 출력하도록 구현된 경우, 1. 게시판 데이터가 많을수록 가독성이 떨어지고 2. 많은 데이터를 한 페이지에 불러오고 출력하는데 있어 시스템의 자원을 많이 사용한다. 는 문제점이 있다. 그래서 페이징 처리에 사용할 수 있는 쿼리의 종류에 대해 알아보자. 페이징 쿼리 1. Rownum을 통한 방식(Oracle, MariaDB) 2. LIMIT를 통한 방식(MySQL, MariaDB) 3. TOP을 통한 방식(MSSQL) - Rownum 모든 SQL에 그대로 삽입해서 사용할 수 있는 가상의 컬럼(Column)이다. 해당 컬럼 값은 SQL이 실행되는 과정에서 발생하는 행의 일련번호를 뜻한다. 쉽게 말해 select를 통해 출력되는 결과 테이블에 행(Ro..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bPjQur/btscBBVcKy1/4cObDn3IeiHI5XQDP8Gmqk/img.png)
대부분의 기능 구현 작업순서는 VO, DTO(도메인 모델 계층) -> Mapper(퍼시스턴스 계층) -> Service(비즈니스 계층) -> Controller(제어 계층) -> JSP(프리젠테이션 계층) 순으로 작업된다. 도메인 모델 계층 도메인 모델은 각 계층간의 전달 되어야 할 정보를 담는 객체 입니다. 해당 객체에 담긴 데이터들은 캡슐화해서 보관됩니다. ( 데이터의 접근자 private / getter,setter를 통해 데이터 접근) 퍼시스턴트 계층 DAO 계층이라고도 불립니다. DB 질의를 통해서 데이터 러치를 담당하는 객체입니다. 비즈니스 계층 핵심 업무 로직의 구현과 그에 관련된 데이터의 적합성 검증 외에도 다양한 부가적인 구현을 수행합니다.(ex. 트랜잭션 처 리, 다른 계층들간 통신을 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c67sCq/btsbQHBBc0l/D4YfNPzSow47FsXt2gy5y0/img.png)
🚩 목표 회원가입 시 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..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/AcZDo/btsbQRcFP2h/tCZUYGkkd4TrHZatAlQ5J1/img.png)
1. 정의 및 사용예시 인터셉터(Interceptor)란? 컨트롤러(Controller)의 '핸들러(Handler)'를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 일종의 필터. intercept라는 단어는 '낚아채다'라는 의미이다. 해당 단어의 의미와 같이 사용자 요청에 의해 서버에 들어온 Request 객체를 컨트롤러의 핸들러(사용자가 요청한 url에 따라 실행되어야 할 메서드, 이하 핸들러)로 도달하기 전에 낚아채서 개발자가 원하는 추가적인 작업을 한 후 핸들러로 보낼 수 있도록 해주는 것. 개발자는 특정 Controller의 핸들러가 실행이 되기 전이나 후에 추가적인 작업을 원할 때 Interceptor를 사용할 수 있다. ex) 개발자가 관리자 계정만이 실행할 수 있는 Contr..