[Spring] Oauth2.0과 Spring Security 작동원리(+ 42Seoul Api를 이용한 Oauth2.0 로그인 구현) Intro 프로젝트를 진행하며 oauth2.0 로그인 기능과 일반회원 기능을 같이 구현하고자 하였다. 내 목표는, 42Seoul의 api를 이용해서 oauth2.0을 구현하기 위한 것이다. 이번 포스팅에서는 oauth2.0에 대한 이야기 Spring 프레임워크에서 Oauth를 편하게 사용할 수 있게 해주는 Spring Security 기능 들에 대해서 적어보고자 한다. Oauth2.0(Open Authorization) 요즘 oauth를 이용한 로그인 기능이 없는 곳이 없다. 네이버, 카카오, 구글 등 로그인을 할 때에 이전처럼 아이디(혹은 이메일)와 비밀번호를 전달받아 로그인할 수도 있지만, 카카오 계정으로 로그인 버튼 등이 있는 것을 볼 수 있다. 저 아래쪽의 티스토리계정 로그인을 누른다면, 기존 우.. [AWS] AWS, EC2, S3란 무엇일까? Intro 우연히 뜻이 맞는 프론트 유저분을 만나서 둘이서 간단한 프로젝트를 진행하고자 하였다. 비록 처음이지만 단순 프로그램 개발뿐만 아닌 배포까지 해보는 것을 목표로 하기로 하였다. 자료를 조사해보니 AWS라는 클라우드 컴퓨팅 시스템을 이용하여 주로 배포를 한다고 하였다. 따라서 이번에는 AWS의 개념과 AWS에 있는 EC2, S3 등이 무엇인지 알아보려고 한다. AWS AWS란 Amazon Web Service의 약자로, 아마존닷컴의 클라우드 컴퓨팅 시스템을 의미한다. 클라우드 컴퓨팅 시스템이란, 클라우드를 통해서 서버, 스토리지, DB 등 유저에게 필요한 IT 자원을 제공하는 것이다. 즉, 내 컴퓨터가 아닌 아마존에서 제공하는 환경을 돈을 지불하고 사용할 수 있는 것이다. 별도의 장비를 구입하고 .. [Java] Long? long? Wrapper Class에 대하여 Intro 기존 언어를 사용하다가 다른 언어를 공부하게 되면 제일 처음 확인하는 부분이 자료형이지 않을까 싶다. 물론 구조적 차이 등에 대한 부분도 있지만 코드를 작성하기 위해서는 변수를 어떻게 생성하고 사용하는지에 대한 부분이다. 나는 기존에 C/C++ 등의 언어로 42서울과제를 진행해왔고, Spring에 대한 공부를 시작하면서 Java를 처음 접하였다. 그런데 Entity에서 PK를 생성할 때 자료형을 long을 사용한다고 하는데 작성된 코드들을 보면 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; // Long 자료형과 long 자료형은 다르다! 이러한 식으로 java.lang 라이브러리에 있는 Long이라는 자료형(.. [Spring] 스프링 DB 접근 기술 Intro Spring을 이용하여 개발을 진행하면 백엔드에 관련된 코드를 작성하는 이상 필연적으로 DB와의 연동을 신경쓰게 된다. 많은 기술들이 존재하지만 전부 알지는 못하고 Spring JDBC, Spring Data JDBC, JPA, Spring Data JPA정도만 알아보려고 한다. 또한 기존 JAVA의 DB연동 방식인 JDBC에 대해 조사하고, Mybatis 또한 많이 사용된다고 하는데 이에 대한 내용도 공부해보겠다. 이 내용들은 설정 및 사용 방법에 대한 자세한 조사보다는 개념적으로 어떠한 차이들이 있고 어떠한 특징을 가지고 있는지에 중점을 두려고 한다. 제목을 스프링 DB 접근 기술이라고 적었지만, 정확히는 JAVA에서 DB에 접근하는 기술이 더 옳은 것 같다. 🔑 요약 : JDBC, Spr.. [Spring] Spring의 기본적인 구조는 어떻게 생겼을까? Intro Spring boot를 통해서 프로젝트를 진행하고 공부하는 사람들 중에는 나처럼 일단 해보고 생각하자! 하면서 @Controller... @Entity.. 이렇게 코드부터 작성을 하는 사람들이 많을 것이다. 강의를 통하든, 인터넷 게시글 등을 통하든 대략적인 정보를 파악하고 코드를 쓰다 보면 에러가 발생하는 경우가 많은데, 이 에러들이 내가 평소에 알던 에러의 이름들이 아니다. Servlet이 어쩌고 저쩌고... Bean이 어쩌고 저쩌고.. 하면서 알지 못하던 부분들이 많게 되서 그때마다 구글링을 통해서 누락된 부분을 추가하거나 수정하는 식으로 공부를 하였다. 그러던 와중 대체 이 Spring Boot가 어떻게 동작하길래 저런 에러들이 존재하는걸까? 하는 의문을 가지게 되었고 한 번 알아보기로.. [Spring] Spring? Spring Boot? Intro 백엔드 개발에 대해 공부를 하다 보면, 백엔드 개발을 하기 위한 언어에도 여러 가지가 존재하는 것을 알 수 있다. Java, JavaScript(node.js), Ruby, Python 등... 또한, 이러한 언어들에서 웹 개발을 조금 더 수월하게 진행하게 해주기 위한 프레임워크들(Spring, Django ..)등 많은 언어들이 있을 것이다. 나는 Java Spring을 이용한 백엔드 개발자가 되는 것을 희망하고 있었는데, 그 이유는 단순히 "현재 기업에서 많이 선택하는 언어인 것으로 알고 있고, 입문하기에 자료들이 가장 많지 않을까?" 하는 이유였다. 그런데 조금 자세히 보면 Java? Java Spring? Spring Boot? 등 처음 입문하는 사람들은 찾아보지 않으면 그 의미를 정확.. [Backend] 디자인패턴 - MVC패턴 Intro 백엔드 공부를 처음 시작할 때, MVC패턴으로 짜면 좋다 라는 인터넷 글을 보고 자연스럽게 MVC패턴을 적용해가려고 노력하며 코드를 작성하게 되었다. 그런데 42서울의 마지막 팀 과제를 하는 과정에서 한 팀원이 "MVC패턴을 왜 써야하는지 자기는 모르겠다" 라는 말을 하였고, 나는 그에 대해서 합당하게 설명을 하지 못했던 경험이 있다. 따라서 나는 정확히 왜 사용하는지 알고 쓰는 것이 아니라, 그냥 남들 다 쓰니까 쓰는거구나 라는 생각이 들었고, 사용방법과 이유에 대해서 자세히 생각해봐야겠다는 생각을 하게 되었다. MVC패턴 MVC패턴이란, Model + View + Controller로 나누어 설계하는 디자인 패턴이다. 디자인패턴이란, 위키피디아에 따르면 프로그램에서 자주 나타나는 과제를 해.. [Backend] REST, REST API, RESTful Intro 이 글에서는 Rest, Restful, Rest API 등 들어는 보았는데 정확히 어떤 내용인지를 몰랐던 것에 대해서 정리를 해보고자 한다. 기본적인 백엔드 구현과 관련이 있다고 생각되어서 스스로도 알아야 할 필요성을 느끼게 되엇다. 아래의 정보들은 나름대로의 자료를 조사하며 내가 이해한 바를 그대로 적고자 함이 가장 큰 목표이다. 만약 틀린 부분이 존재한다면 댓글에 남겨주시면 빠르게 파악하고 수정할 수 있도록 하겠습니다. Rest(Representational State Transfer) 먼저 문자 그대로 해석을 해보자면, "표현 상태 전송" 이라는 뜻으로 해석이 됩니다. 그렇다면 무엇의 표현 전송해야 하는가? 하는 의문을 가지게 되었는데, 그 무엇은 우리가 말하는 자원(Resource)이 .. [Backend] 백엔드 공부 시작 Intro 1년 간 공부를 진행하며 내가 어떤 방향이랑 맞을지에 대해서 생각을 많이 해보게 되었다. 웹, 게임, 앱 등 여러가지 개발자로 나뉠 수 있고, 그 안에서도 프론트, 백엔드 등 여러가지로 나뉘게 된다는 것을 알았다. 당연히 내가 적은 분야만이 있는 것이 아니라, 내가 알지 못하는 많은 분야들이 존재하고 그 분야로 나아가는 분들이 많다. 내가 어떤 분야를 선택해야 하는지에 대해서 많은 경험을 해보지는 못했지만, 42서울 과제중 Webserv, Transcendence라는 과제를 진행하며 프론트엔드보다는 백엔드쪽에 조금 더 관심이 가게 되었고, 어떠한 사이트를 만들어 보는 과정에서 데이터베이스 연동 및 데이터들을 관리하고 처리하는 과정에서 재미를 가장 크게 느꼈다고 생각해서 웹 백엔드쪽으로 진로를 .. 이전 1 2 다음