일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프론트엔드 과제
- Deep Dive
- 프로그래머스
- AWS
- 파일 url
- api 요청 수 제한
- concurrency limit
- bucket4j
- 음악 url 파일 다운로드
- 자바스크립트
- 프론트엔드
- compateto
- TypeORM
- 코멘토 #코멘토실무PT #실무PT후기 #실무강의 #리액트강의 #웹프로그래밍 #react #웹개발실무
- api 비동기처리
- 우아한테크코스
- NestJS
- 프리코스
- 타입스크립트
- 우아한 테크코스
- 딥다이브
- invalid_grant
- oauth
- 검색
- redis
- this
- 스프링부트
- 모던 자바스크립트
- Dev-Matching
- 유효시간 설정 url
- Today
- Total
목록전체 글 (174)
개발 알다가도 모르겠네요

OAuth란? 사용자가 비밀번호를 제공하지 않고 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준. 구현 권장 방식 기본 네이티브 앱 서비스 클라이언트에서 인가 코드 및 토큰 발급 모두 처리 Redirect 방식 웹 서비스 클라이언트에서 소셜 로그인 요청 시, 인가 코드가 발급되어 서비스 서버의 Redirect URI로 전달됨. 서비스 서버에서 인가 코드로 토큰 발급을 요청해야 함. REST API 시퀀스 다이어그램 (PC 및 모바일 웹 환경 권장) 네이티브 시퀀스 1. 클라이언트에서 SNS 서버로 로그인 요청 2. SNS 서버로부터 access token 받음 3. 서버에 access token 전달 4. 서버에서 전..
Original import CatModule from '../../cat/cat.module.ts' Alias Path import CatModule from '@/cat/cat.module.ts' tsconfig.json "paths": { "@/*": ["./src/*"], "@boards/*": ["./src/boards/*"], "@configs/*": ["./src/configs/*"] }, Jest Unit 테스트를 위한 설정 package.json (jest config 설정) "moduleNameMapper": { "^@/(.*)$": "/$1", "^@boards/(.*)$": "/boards/$1" } jest-e2e.json (Jest End-to-End 테스트 설정) { ... "..
2022년 3월, TypeORM 0.3 버전이 새롭게 배포되면서, 기존 @EntityRepository 데코레이터가 deprecated되었다. @EntityRepository() class BoardRepository extends Repository {} 기존에는 저런식으로 쓰였지만, 이제는 CustomRepository 데코레이터를 사용하거나, @Injectable()을 사용하여 서비스단에 의존성주입을 하는 방법을 사용해야 한다. 그중에서도 @Injectable이 코드가 훨씬 간단해보여 알아보고자 한다. 검색 결과, @Injectable을 이용한 대부분의 사람들이 아래와 같이 구현했다. @Injectable() export class BoardRepository extends Repository { ..
updateOrCreate 모델이 존재하는 경우에 이를 업데이트하고, 존재하지 않는 경우에는 새로운 모델을 생성 withCount 연관된 모델의 갯수 확인 simplePaginate 애플리케이션의 UI에 간단한 "다음" 및 "이전" 링크만 표시해야 하는 경우 simplePaginate 메서드를 사용, 효율적인 단일 쿼리를 수행 join 쿼리 빌더를 사용해서 쿼리에 조인 절(join clauses)을 추가. 기본적인 "inner join" 을 수행하기 위해서는 쿼리 빌더 인스턴스의 join 메소드를 사용. 첫 번째 인수: 조인해야 하는 테이블의 이름 나머지 인수: 조인에 대한 컬럼 제약 조건을 지정. 단일 쿼리에서 여러 테이블을 조인 가능. whereExists "where exists" SQL 절을 작성..
리퀘스트 처리에 관한 논리는 라우트 파일에서 클로저로 정의 할 수 있지만, "컨트롤러" 클래스를 사용하여 같은 동작을 설정할 수 있다. 기본적으로 컨트롤러 클래스 파일은 app/Http/Controllers 디렉토리에 저장된다. 기본 Controller 컨트롤러는 Laravel에 포함된 기본 컨트롤러 클래스를 확장한다. 기본 컨트롤러 클래스는 App\Http\Controllers\Controller 경로에 위치한다.
Laravel Sail Laravel의 기본 Docker 개발 환경과 상호 작용하기 위한 간단한 명령줄 인터페이스. Sail은 도커에 대한 경험이 없더라도 PHP, MySQL 및 Redis를 사용하여 Laravel 애플리케이션을 구축 가능. 기본적으로 Sail은 docker-compose.yml 파일이며 프로젝트의 루트에 저장된 sail 스크립트이며, sail 스크립트는 docker-compose.yml 파일로 정의된 도커 컨테이너와 상호 작용할 수 있는 편리한 방법을 CLI로 제공한다. 기존 어플리케이션에 Sail 설치 기존 Laravel 어플리케이션에서 Sail을 사용하려면 Composer를 사용하여 Sail을 설치하면 된다. composer require laravel/sail --dev Sail ..
라라벨은 Docker을 사용하여 라라벨 프로젝트를 실행하기 위한 기본 제공 솔루션인 Sail을 제공. Sail은 사전 Docker 경험 없이도 PHP, MySQL 및 Redis를 사용하여 라라벨 애플리케이션을 구축할 수 있는 좋은 출발점을 제공. 가장 먼저 라라벨로 만든 웹 사이트의 URL을 결정하는 라우터부터 수정해보자. 라라벨의 라우터는 최상위 디렉토리 아래에 있는 routes/web.php 파일이 우리가 수정할 대상이다. 이 파일에 아래 소스코드를 복사하여 붙여넣으면, 이후에 웹 브라우저에서 /hello/world 경로로 접속하면 "Hello World"라는 문구가 표시되는 것을 볼 수 있다. Route::get('/hello/world', function () { return 'Hello Worl..
$ ./vendor/bin/sail up Unsupported operating system [MINGW64_NT-10.0-18363]. Laravel Sail supports macOS, Linux, and Windows (WSL2). vendor/laravel/sail/bin/sail 에서 아래 부분 주석 처리. # Verify operating system is supported... case "${UNAMEOUT}" in Linux*) MACHINE=linux;; Darwin*) MACHINE=mac;; *) MACHINE="UNKNOWN" esac if [ "$MACHINE" == "UNKNOWN" ]; then echo "Unsupported operating system [$(uname -s..

servlet-context.xml Spring설정 중 InternalResourseViewResolver를 이용해 View Page를 지정. InternalResourseViewResolver는 Controller에서 return된 ModelAndView 객체에서 선언된 View Page를 지정해주는 클래스. 이 클래스를 편리하게 사용하도록 Prefix(접두어), Suffix(접미어) 사용. 접두어로 /WEB-INF/views/를 붙이고 접미어로 .jsp를 붙여 해당 위치에 있는 jsp 호출. 결론 Controller에서 /hello를 return하게 되면 /WEB-INF/views/hello.jsp를 호출.
네 번째 프리코스 과제는 우테코 제공 라이브러리를 활용해서 다리를 끝까지 건너가는 게임을 구현하는 것이었다. 3주차 공통 피드백을 참고해 이번 과제에 반영하고자 했다. 예외 처리 예외 상황을 고려해 프로그래밍하는 습관을 들이고자 했다. 예외에 대한 상황을 최대한 쪼개서 각각 예외 처리하는 방식이었다. 예외 처리해야 할 상황을 하나하나 생각하는 것이 어려웠지만, 이때 테스트 케이스를 작성해서 제가 생각한 대로 예외 처리가 되는지 살폈다. 성공하는 테스트 케이스뿐만 아니라 예외 상황에서의 테스트 케이스를 작성해서 구현하는 것 또한 중요하다는 것을 깨달았다. 더욱 깔끔한 코드 지난 주 차 까지는 각 메서드의 코드 라인이 15줄로 제한되었지만, 이번 주는 10줄로 제한되면서 자연스레 메서드를 더욱 세부적으로 나..