전체 글 (16) 썸네일형 리스트형 JWT의 AccessToken 그리고 RefreshToken 프로젝트를 진행하며 어쩌다보니 모든 프로젝트에서 내가 로그인과 로그아웃 기능구현을 맡게 되었다. 나는 모든 프로젝트에 JWT(토큰) 방식으로 로그인 및 로그아웃을 구현하였고 구현하며 내가 공부했고 어떻게 구현했는지에 대해서 이야기 해보려 한다.애플리케이션에서 인증/인가 정보를 다루는 방식은 크게 쿠키, 세션, JWT(JSON web Token) 으로 나누어진다. 해당 포스팅에서는 JWT에 대해서만 이야기 해보려 한다. 이유는 가장 많이 썻던 기술이 JWT였기 때문에..JWT(JSON Web Token)JWT의 사용처는 토큰은 대부분 로그인할 때 사용된다. 이는 서버가 발급해주는 JSON형식의 인증/인가 정보를 인코딩하고 서명을 포함해서 만들어진다. 일반적으로는 헤더(header), 내용(payload),.. [회고록] SpringBoot에 AI 서비스 도입기 나는 다양한 프로젝트에 AI 서비스를 도입했다. 졸업작품에서는 교수님의 추천과 매칭 서비스의 고도화, 해커톤에서는 애초에 주제가 AI 해커톤이였고, 후원사가 NCP라서 Clova AI를 활용해야했고, 다른 프로젝트 역시 Clova AI를 도입했다. 좀 지난 일이긴 하지만 AI를 어떤 방식으로 적용했는지 기록하고자 한다. 1. ChatGPT(OpenAI)첫째로 아주 잘 알고있는 OpenAI의 ChatGPT이다. https://platform.openai.com/docs/overview 위의 링크에 들어가보면 아주 친절하게 API문서 부터 어떤 모델이 있고 Playground에서 예시로 모델을 사용해볼 수 있다. 나는 해당 API를 졸업작품때 도입했기 때문에 그때는 없던 신기한 기능들도 있다..(TTS, .. [회고록] Docker 그리고 Docker-Compose를 이용한 배포 3학년2학기에 나는 졸업작품을 시작했다. 내 포지션은 백엔드였고 어느정도 기능을 구현하고 프론트엔드와 API를 연동을 할때 처음에는 배포 환경을 구성하지 않아서 프론트엔드 팀원들은 백엔드의 코드를 Clone받거나 .Zip 형태로 다운받아서 서버를 실행한 후 API 연동을 테스팅했었다.. 지금 생각해보면 정말 말도 안되는 일이지만 그때는 어떻게 인스턴스를 만들고 어떻게 배포하는지 몰랐을 때라 그랬다. 결국 이렇게 불편한 환경속에 작업하다가 처음으로 GCP의 VM 인스턴스를 만들고, Docker와 Docker-Compose를 이용해서 배포 환경을 구성하였다.. Docker 일단 Docker란 무엇이고 왜 사용하는걸까? 여기 한명의 서버 개발자(A씨)가 있다고 예를들어보자. 이 A씨와 프론트엔드 개발자 한명이.. CI/CD+[회고] CI/CD란?CI/CD는 "CI"는 지속적인 통합(Continuous Integration) "CD"는 (Continuous Delivery) 또는 (Continuous Deployment)를 의미한다. CI를 구현 할 경우 애플리케이션에 대해 코드 변경사항이 정기적으로 빌드 및 테스팅되어 원격 리포지토리에 통합되므로 애플리케이션 개발과 관련된 코드 작업을 할 경우에 서로 충돌 할 수 있는 문제를 방지해준다. CI/CD 두 용어는 상호 교환적으로 사용된다. 두가지 모두 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때론 얼마나 많은 자동화가 이루어지고 있는지 설명하기 위해 별도로 사용되기도 한다. CI/CD단계일반적인 앱의 개발 및 유지보수 단계이다. 지속적인 통합 "CI"자동화 프로세스로 위의 사진.. [WEB] HTTP 메서드 프론트엔드 혹은 백엔드 개발자를 희망한다면 몰라서는 안되는 지식이다.사실 모르는게 더 이상하다. HTTP Method HTTP Method는 서버-클라이언트 가 있다고 했을때 클라이언트가 보내는 요청(Request)과 서버가 받는 응답(Response)이 이루어지는 방식이다.서버가 수행해야될 동작을 지정해서 요청(Request)을 보낸다. 사용하는 이유리소스와 동작을 분리하기 위해서 사용한다. 종류 그나마 자주 쓰는 메소드 들만 적어보겠다.. Get : 리소스 조회Post : 데이터 생성, 등록Put : 리소스 대체, 수정 / 리소스가 없다면 새롭게 생성Delete : 삭제Patch : 리소스의 부분 변경(수정)GET 위에서 말한 것 처럼 리소스를 조회한다. 클라이언트가 서버에게 "이 데이터 보여줘.. 자바 리플렉션 자바의 리플렉션은 뭘까? Reflection자바의 리플렉션은 뭘까? 구체적인 클래스 타입을 알지 못해도 해당 클래스의 메서드, 필드, 타입에 접근할 수 있도록 하는 자바 API 런타임에 실행이 된다.즉, 런타임에 동적으로 객체를 생성하고 메서드를 호출한다. 언제 사용할까? 코드를 작성할 시점에는 어떤 타입의 클래스를 사용할 지 모르지만, 런타임 시점에 지금 실행되는 클래스를 가져와 실행해야 하는 경우. 프레임워크나 IDE에서 리플렉션 기능을 지원해준다.인텔리제이 자동완성스프링부트의 에노테이션코드로 보기 Person 이라는 클래스를 만들었다. Class.forName()메서드를 이용해 Class를 찾는다. getDeclaredConstructor 메서드를 이용해 인자가 없는 생성자를 찾는다. 이 코.. [JAVA] Object 클래스 졸업작품이랑 알고리즘이랑 다른 프로젝트를 하면서 아무런 생각이 없이 코드를 짜고 있었다.키보드를 치며 나의 뇌리에 스쳐간 생각 "이건 거의 침팬지인데?" 나는 가장 중요한 기본기라는것을 놓치고 있었다. 그럼 기본기란 뭘까? 프레임워크를 잘 사용하는 것이 아닌 해당 언어의 본질과 프레임워크의 구조를 파악하고 "이거 왜 이렇게 쓸까?" 라는 생각을 하고 깊이 파보는것이 좋은 기본기를 갖춘것이 아닐까? 물론 저의 뇌피셜입니다. 나는 과거 인프런에서 김영한 선생님의 강의를 구매해 스프링을 공부했다. 그때 나는 프로젝트도 안할때였고 간단한 게시판? 조차 구현하지 못할때였다. + 객체지향 프로그래밍도 어려워했다. 이건 아직도 어렵긴 하다.그렇기에 이게 왜 이렇게 쓰이고 어디에 적재적소에 사용하는지 잘 몰랐던 것 .. 객체지향 설계 좋은 객체지향 프로그래밍?객체지향의 특징추상화캡슐화상속다형성객체 지향 프로그래밍이란 무엇인가?객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시야에서 벗어나 여러개의 독립된 단위, 즉 “객체” 들의 모임으로 파악하고자 하는것. 각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있음 = (협력가능)객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다유연하고, 변경이 용이하다?레고 블럭 조립키보드, 마우스 갈아 끼우듯컴퓨터 부품 갈아 끼우듯..다형성(polymorphism)다형성의 실세계 비유역할 과 구현으로 세상을 구분함요런 느낌역할과 구현을 분리EX) 운전자 - 자동차, 공연무대, 키보드, 마우스 등등..역할과 구현으로 구분하.. 이전 1 2 다음