목록전체 글 (88)
사적인 개발자
0. HTTP의 특성 1. 요청 - 응답 구조클라이언트가 요청하면 서버가 응답하는 단방향 통신 구조 2. 무상태성 (Stateless)서버가 클라이언트의 상태를 보존하지 않음> 클라이언트가 방금 전까지 무엇을 했는지 서버가 기억하지 못함> 서버는 매 요청을 완전히 독립적으로 받아들임 3. 비연결성응답을 보내면 연글을 끊어 리소스를 효율적으로 사용 * 무상태성의 특징에서, 로그인은 어떻게 유지되는가?예시 1) 아이디와 비밀번호를 매번 요청과 함께 보낸다- 탈취 위험 증가 1. 세션 로그인1. 사용자가 처음 로그인할 때 아이디와 비밀번호를 보내면2. 서버는 이를 확인한 뒤 사용자 정보를 담은 세션을 생성해 데이터베이스에 저장3. 해당 정보를 가리키는 고유한 세션 아이디를 만들어 클라이언트의 쿠키 형태로 내..
Web Server웹서버의 역할클라이언트가 요청한 웹 리소스를 응답정적 콘텐츠 요청 -> 직접 응답동적 콘텐츠 요청 -> 동적 콘텐츠 처리 가능한 서버로(WAS) 요청 전달 및 처리된 결과를 받아 응답 Q. Was는 브라우저와 다이렉트로는 안 붙나? 그럼 앵간한 서버에는 웹서버와 WAS가 다 설치되어있나?A. 대부분 웹서버와 WAS가 붙어있음. 대표 예시 : tomcat대부분의 WAS는 웹 서버와 서블릿 컨테이너를 결합한 형태로 정적 및 동적 콘텐츠 모두 응답 가능 WAS의 요청 처리 과정 - Web Server와 Http 로 통신- Java는 Servlet Container를 통해 웹서버와 통신함 그럼에도 Web Server가 필요한 이유?WAS가 할일이 많아서 로딩지연 가능, was 멈추면 다..
플랫폼에서는 로그인 시 JSESSIONID 값을 redis에 저장해둔다. 어디서 저장해두나 살펴보다가, tomcat 세팅에서 자동으로 redis와 연동해두었다는 것을 발견함 파일위치 : /usr/local/tomcat/conf/context.xml WEB-INF/web.xml 예 하나씩 뜯어서 살펴보겠습니다. [ 1 ] tomcat context.xml 코드 1. Tomcat 웹 애플리케이션의 최상위 설정 태그 - sessionCookiePath="/" : 세션 쿠키(JSESSIONID)가 모든 경로( / )에서 유효함. /login에서 생성된 쿠키가 /info, /shop 등 어떤 하위경로에서든 전송됨- sessionCookieDomain=".platform.com" : url ..
1. Springboot에서 Redis 세션 관리를 위해 추가할 코드들pom.xml org.springframework.boot spring-boot-starter-data-redis org.springframework.session spring-session-data-redis application.properties# Redisspring.session.store-type=redisspring.redis.host=localhostspring.redis.port=6379 RunApplication.java 어노테이션 추가@EnableRedisHttpSession데이터 저장 객체 Serializable 상속 (Redis 저장시 직렬화 필요)public class User impl..
1. 로컬 백엔드 URL 생성1. ngrok MS용 설치https://apps.microsoft.com/detail/9mvs1j51gmk6?hl=ko-KR&gl=KR 2. cmd 명령어 입력ngrok config add-authtoken [AuthToken] 3. 백엔드 로컬로 띄운 후 아래 명령어 입력 (띄운 서버 포트를 쓰면됩니당!)ngrok http http://localhost:8080 4. cmd에 아래처럼 url 이 나오면 성공! 이 url로 로컬서버 외부에서 접속 가능Forwardinghttps://frisbee-scuttle-asparagus.ngrok-free.dev -> http://localhost:8080 5. cibono-app/.env 파일에 URL 바꾸기EXPO_PUBLI..
로그인 기능 전체 흐름 공부 정리프로젝트: koreaApp (React Native 앱 + Spring Boot 백엔드)전체 흐름 한눈에 보기[사용자 입력 (아이디/비번)] ↓[components/login/index.js - handleLogin()] ↓[components/authController.js - authLogin()] ← HTTP POST 요청 ↓[백엔드: AuthController.java - /api/auth/login] ↓[AuthenticationManager가 인증 처리] ↓[JwtUtils가 JWT 토큰 생성] ↓[JwtResponse 반환 (token, id, username, email, roles..
로그인 흐름 Study 코드 (Mock)전체 흐름:[앱 시작] → AsyncStorage에서 세션 로드[로그인 화면] → ID/PW 입력 or 소셜버튼 클릭 ↓[프론트 authController] → POST /api/auth/login ↓[백엔드 AuthController] → AuthenticationManager로 인증 ↓[JwtUtils] → JWT 토큰 생성 (HS512, 24시간) ↓[응답: {token, id, username, email, profileName, roles}] ↓[AuthContext.login()] → AsyncStorage "@user_session"에 저장 ↓[이후 모든 API 요청] → Header: "Authorizatio..
외부 CI/CD 도구 없이, 단일 서버에서 쉘 스크립트와 Node.js만으로 배포 UI를 직접 만든 과정을 정리합니다.배경해외 현지 IDC 서버(IDC Network)에서 운영 중인 신규서버의 QA 환경에 배포를 자동화하고 싶었습니다.기존 배포 방식은 SSH로 접속 후 명령어를 하나하나 입력하는 방식이었고, 빌드 순서를 틀리거나 명령어를 빠뜨리는 실수가 잦았습니다.서버 구조Internet └── Cloudflare (IP) └── nginx (80) ├── / → FrontEnd Expo (IP:80) ├── /api/ → Backend SpringBoot (IP:8080) └── /deploy/ → Deploy UI (..
사용 Tooln8n, docker, groq api, google app, NAS 목표K-pop / 음악 매거진용 트렌드·밈·컴백 이슈 자동 발굴 시스템 매일 아침 8시에 현재 화제가 되는 뉴스들을 정리해 뉴스레터 형식으로 전송친구가 관련업종에서 일하는데, 매번 소재찾는데에 골머리를 앓기에 만들어봤다. 제일 만들고싶었던건 X, 인스타, 스레드 같은 SNS들을 긁어오고싶었는데 요즘 여기 크롤링 api 가격이 후덜덜하다길래 패스.google news와 reddit 사이트를 이용했고, youtube도 긁어와봤으나 어쩐일인지 계속 404....ㅠ 어쨌거나 뉴스들의 title만 추출한 후, groq api를 통해 의미있는 소재거리를 찾는 작업을 하고이후 내용을 정리해 google 계정 app 을 통해 메일로 보낸..
windows10 사용중인데, 시스템 환경변수가 잘 먹다가 갑자기 안먹는다.찾아보니 GUI 말고 CLI로도 추가할 수 있는 방법이 있어 cmd에서 추가함우선 cmd에서 시스템 환경변수 목록 조회는 set 명령어를 치면 쭉 나온다.set자매품으로 powershell의 $env:Path 가 있다.쭉 봤을때 내가 원하는 환경변수가 없다. 일단 내가 찾아가려고 하는 경로에는 .exe 파일이 고이 잘 있으시기 때문에 cli로 아래 명령어를 사용해 직접 환경변수를 추가한다.set PATH=%PATH%;[경로] 잘 추가되었다. 이제 cmd를 모두 끄고 명령어를 불러보겠다. 잘 된다. 다만 해당 cmd를 벗어나면 환경변수는 사라진다는 단점이있음