반응형

프로그래밍 234

자바스크립트에서 동기적으로 실행되는 루프문(for문) 정리

자바스크립트에서 반복문(loop) 은 기본적으로 동기적으로 실행됩니다. 하지만 비동기 코드(setTimeout, fetch, await)가 포함되면 비동기적으로 실행될 수 있습니다. 이 글에서는 동기적으로 실행되는 루프문과, 비동기 코드가 포함된 경우 동기적으로 실행하는 방법을 정리하겠습니다. ✅ 동기적으로 실행되는 루프문다음의 루프문은 순차적으로 실행되며 동기적입니다.1️⃣ for 문 (동기 실행)console.log("Start");for (let i = 0; i  출력 결과Start012End 📌 for 문은 순차적으로 실행되므로 완전히 동기적입니다. 2️⃣ while 문 (동기 실행) console.log("Start");let i = 0;while (i 출력 결과Start012End 📌 wh..

Prisma에서 prisma db push vs prisma migrate dev 차이 완벽 정리!

🚀 Prisma에서 prisma db push vs prisma migrate dev 차이 완벽 정리!Prisma를 사용하여 데이터베이스 스키마를 변경할 때, prisma db push와 prisma migrate dev의 차이를 확실히 알고 계신가요?잘못된 명령어를 사용하면 데이터가 삭제되거나, 이전 상태로 돌아가는 문제가 발생할 수 있습니다.오늘은 이 두 가지 명령어의 차이점과 언제 사용해야 하는지를 정리해보겠습니다! 🎯✅ prisma db push란?📌 Prisma 스키마를 강제로 데이터베이스에 동기화하는 명령어입니다. npx prisma db push🔹 특징✅ 마이그레이션 파일(migrations/)을 생성하지 않음✅ 현재 schema.prisma의 상태를 그대로 DB에 적용✅ 기존 데이터..

[Javascript, 자바스크립트]만 19세 미만 체크하기, 나이 체크 함수

function isAdult(year, month, day) { const today = new Date(); const birthday = new Date(year, month - 1, day); const diffYear = today.getFullYear() - birthday.getFullYear(); const diffMonth = today.getMonth() - birthday.getMonth(); const diffDay = today.getDate() - birthday.getDate(); // 년도 차이가 19이면 월과 일 차이도 체크 if (diffYear === 19) { // 월 차이가 마이너스면 아직 생일이 지나지 않은 상태 if (diffMonth < 0) { return t..

API를 Restful 하게 작성하기 위해 고려해 볼 만한 5가지 디자인

" beyondj2ee "글을 참고하여 정리하였습니다. “100% RESTful 아키텍쳐링“을 다 지킬수는 없지만 최소한 아래에 “언급하는 5가지 디자인“에 대해서는 인식할 필요가 있습니다. 1. API의Endpoint가 오직 한개인가? 실제 경험한 사례로써 한번은 어떤 시스템의 연동 문서를 보니 “오직 한개의 URL로 fix” 되어 있었습니다. 예를 들어서 URL은 “http://example.com/rest” 이며, 모든 request는 해당 URL로 통합니다. 실제 자원에 대한 정보, 호출 서비스 정보, 파라미터 정보 등은 “XML 형태의 Body 데이터“로 전송 하도록 되어 있었습니다. REST의 매우 중요한 구성 요소중 하나는 “Resource” 입니다. “Resource”의 의미는 말 그대로 ..

[java/자바] replaceAll(), trim() 공백 제거 안될 때

replaceAll (" ", "" )이나, trim() 으로 간단 하게 공백을 제거하려 했지만 제거가 안되는 경우가 있다. 이유를 찾아보니.. 상기 코드로 삭제되지 않는 이유는.. "CJK 문자셋에서 'IDEOGRAPHIC SPACE'라고 불리는 유니코드는 \u3000이며, HTML에서는 으로 표현, 폰트가 이를 지원하지 않을 경우, 실제로는 보이지 않는 코드로만 존재하는 공백" 이럴 경우 다음과 같은 정규식을 통해 제거가 가능. // 모든 공백 제거 String str =originalString.replaceAll("\\p{Z}", ""); // 앞뒤 공백만 제거(trim) String str =originalString.replaceAll("(^\\p{Z}+|\\p{Z}+$)", ""); 참고 :..

JavaScript에서 return과 break 명령문의 차이점과 사용법

return의 용도 MDN의 설명에 따르면 'return 명령문은 함수 실행을 종료하고 주어진 값을 함수 호출 지점으로 반환합니다.'라고 되어있다. 함수 중단 주어진 값을 함수 호출 지점으로 반환 함수에서 return 명령문에 도달하면 함수의 실행은 그 지점에서 중단되고, 값을 제공한 경우는 함수를 호출한 곳에 그 값을 반환하는데, 이때 값을 명시하지 않으면 undefined를 반환한다. 아래와 같은 명령문은 모두 함수 실행을 중단한다. return; return true; return false; return x; return x + y / 3; return; 만 있는 경우 if 문의 조건이 충족하는 경우 해당 함수를 실행을 중단하고 함수 자체에서 빠져나가라는 의미. Stack.prototype.pop..

[Spring Security] 스프링 시큐리티 Authentication 메커니즘

옥탑방개발자 님의 강의를 보고 정리한 내용입니다. Authentication 메커니즘 인증 (Authentication) Authentication 는 인증된 결과만 저장하는 것이 아니고, 인증을 하기 위한 정보와 인증을 받기 위한 정보가 하나의 객체에 동시에 들어 있습니다. 왜냐하면, 인증을 제공해줄 제공자(AuthenticationProvider)가 어떤 인증에 대해서 허가를 내줄 것인지 판단하기 위해서는 직접 입력된 인증을 보고 허가된 인증을 내주는 방식이기 때문입니다. 그래서 AuthenticationProvider 는 처리 가능한 Authentication에 대해 알려주는 support 메소드를 지원하고, authenticate() 에서 Authentication을 입력값과 동시에 출력값으로도 ..

[Spring Security] 스프링 시큐리티 폼 로그인

옥탑방개발자 님의 강의를 보고 정리한 내용입니다 폼 로그인 DefaultLoginPageGeneratingFilter GET /login 을 처리 별도의 로그인 페이지 설정을 하지 않으면 제공되는 필터 기본 로그인 폼을 제공 OAuth2 / OpenID / Saml2 로그인과도 같이 사용할 수 있음. UsernamePasswordAuthenticationFilter POST /login 을 처리. processingUrl 을 변경하면 주소를 바꿀 수 있음. form 인증을 처리해주는 필터로 스프링 시큐리티에서 가장 일반적으로 쓰임. 주요 설정 정보 filterProcessingUrl : 로그인을 처리해 줄 URL (POST) username parameter : POST에 username에 대한 값을 넘..

[Spring Security] 스프링 시큐리티 Authentication (인증)의 기본 구조

옥탑방개발자 님의 강의를 보고 정리한 내용입니다. 로그인 하기 스프링 프레임워크에서 로그인을 한다는 것은 authenticated 가 true인 Authentication 객체를 SecurityContext 에 갖고 있는 상태를 말합니다. 단 Authentication이 AnonymousAuthenticationToken 만 아니면 됩니다. 로그인 == Authentication(authenticated = true) only if Authentication != AnonymousAuthenticationToken Authentication (인증)의 기본 구조 필터들 중에 일부 필터는 인증 정보에 관여합니다. 이들 필터가 하는 일은 AuthenticationManager 를 통해 Authenticati..

반응형