본문 바로가기

개발17

NEXTSTEP TDD, 클린 코드 with Java 후기 2023.11.2에 시작해서 2023.12.14일 까지 약 6.5주 간의 NEXTSTEP TDD, 클린 코드 with Java 후기를 남겨보려고 한다. 지금까지 개발 공부를 하면서 기능 구현에 집중하다 보니 내 코드는 늘 쓰레기 그 자체였다. 클린코드에 대한 욕심이 있었고 배워보고자 하는 생각이 항상 있었지만, 막상 무엇을 공부해야 하는지 몰랐으며, 사실 시작할 용기가 없었다. 그러다 우테코 교육을 전담하는 NEXTSTEP이라는 교육기관이 TDD와 클린코드 강의 별도 유료 강의로 진행하고 있다는 것을 알게 되었다. 'TDD, 클린 코드 with Java' 과정은 '실무 경력이 1~3년차' 대상으로 한 강의이고 수강료가 80만원이나 했기 때문에 취준생 나는 고민이 많았다. 하지만 클린코드와 TDD에 대해 .. 2023. 12. 14.
함수형 인터페이스(Functional Interface) 함수형 인터페이스(Functional Interface) : 단 하나의 추상 메서드만 선언된 인터페이스 @FunctionalInterface interface SquareFunction() { public abstract int square(int a); } * interface의 추상메서드는 public하면서 abstract이므로 public abstract 생략 가능 * @FunctionalInterface 어노테이션은 안붙여도 상관없지만 붙이면 함수형 인터페이스 사용시 컴파일러가 두 개 이상의 추상 메서드를 만드는 것을 막아줌 함수형 인터페이스를 사용하면 람다식을 참조변수에 담아 사용할 수 있다. (단, 함수형 인터페이스의 메서드와 람다식의 매개변수 개수와 반환타입이 일치해야 한다) @Functio.. 2023. 7. 16.
람다식(Lambda Expression) 람다식(Lambda Expression) : 함수(메서드)를 간단한 식(expression)으로 표현하는 방법 함수 vs 메서드 근본적으로는 같지만, 함수는 클래스에 독립적이고 메서드는 클래스에 종속적이다. (클래스 밖에 메서드를 정의할 수 없다) 함수는 일반적인 용어이고 메서드는 객체지향개념 용어이다. 메서드를 람다식으로 바꾸는 방법 int square(int a) { return a * a; } 1. 반환타입과 메서드이름을 지운다. (int a) { return a * a; } 2. 매개변수 오른쪽에 화살표( → )를 추가한다 (int a) -> { return a * a; } 3. 반환값이 있는 경우, 식이나 값만 적고 return문 생략가능하다. (세미콜론도 생략가능) (int a) -> { a .. 2023. 7. 15.
재귀함수 사용 시 코드 실행시간을 단축하는 방법 (C++) 재귀 문제를 풀면서 분명 같은 로직인데 실행시간이 많게는 10배이상 차이나는 것을 보았다. https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 14889번 문제는 N제한이 20이하이므로 순열을 사용하여 스타트팀과 링크팀으로 나눈다면 시간복잡도가 최대 20! = 2,432,902,008,176,640,000 이 되어버리기 때문에 재귀(백트래킹)를 사용하여 풀어야한다. void solve(vector a, vector b, int idx) { if (idx == n + 1.. 2023. 7. 14.
백준 + 프로그래머스 + SWEA 자동 커밋 익스텐션 백준허브 설치 https://chrome.google.com/webstore/detail/%EB%B0%B1%EC%A4%80%ED%97%88%EB%B8%8Cbaekjoonhub/ccammcjdkpgjmcpijpahlehmapgmphmk?hl=ko 백준허브(BaekjoonHub) Automatically integrate your BOJ submissions to GitHub chrome.google.com 사용법 https://github.com/BaekjoonHub/BaekjoonHub GitHub - BaekjoonHub/BaekjoonHub: 백준 자동 푸시 익스텐션(Auto Git Push for BOJ) 백준 자동 푸시 익스텐션(Auto Git Push for BOJ). Contribute to .. 2023. 7. 6.
02) Nest.js JWT인증 + RoleGuard 가이드 전체 코드 : https://github.com/jeounpar/nestjs-jwt-roleguard-tutorial 1. role-guard.decorator.ts 파일 생성 import { SetMetadata } from '@nestjs/common'; export const Roles = (...roles: string[]) => SetMetadata('roles', roles); @Role() 데코레이터로 사용된다. 2.auth.guard.ts 파일 수정 import { CanActivate, ExecutionContext, Injectable, UnauthorizedException, } from '@nestjs/common'; import { JwtService } from '@nestjs/.. 2023. 6. 9.