본문 바로가기

TIL

(41)
40_Step : JPA란 무엇인가? 컴퓨터 프로그래밍 언어의 종류는 다양하다. 프로그래밍에는 프론트엔드, 백엔드, 데이터 등 다양한 분야가 있기 때문이다.본인의 분야가 아니면 아예 모를 정도로 다른 언어도 있고, 본인이 쓰는 언어와 유사하거나 거의 똑같은 언어도 있다. 한 분야의 프로그래밍 언어만 공부하더라도 평생을 해야될 수도 있을 정도로 정보가 방대한데 다른 분야의 언어까지 섭렵하려면 정말 힘들 것이다. 예를들어 자바를 쓰는 백엔드개발자가 데이터에 문제가 생겼을때 처리를 해야하는 경우, 어렵다고 생각할 수 있다. 그러나 이를 해결해주는 JPA를 활용하면 그 어려움은 조금씩 없어질 것이다. JPA란?? JPA를 알기 위해서는 선행적으로 ORM에 대해 알아야 한다. ORM은 Object-Relational Mapping의 약자로 객체와 관..
39_Step : 카카오 ID로 로그인 연동하기(2) 카카오 서버를 사용할 준비를 마쳤으면 본격적으로 사용을 한다. 먼저 카카오 서버에 있는 사용자의 정보를 가져오기 위해 카카오 서버에서 인가코드를 발급 받아온다. 다음은 카카오 로그인 구현 시에 REST API를 사용한 로그인 과정의 시퀀스 다이어그램이다. 이를 통해 단계별로 어떻게 진행되는지 확인해 보는 것이 좋다. 아래의 링크에 가면 카카오 로그인에 대한 전반적인 설명과 사용방법에 대해 자세히 나와있다. https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#request-code Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합..
38_Step : 카카오 ID로 로그인 연동하기(1) 예전에 우리는 하나의 웹사이트를 방문해서 그 웹사이트의 서비스를 사용하려면 모두 회원가입 절차를 밟아 정보를 입력하고 관리자의 승인을 받아야만 사용할 수 있었다. 본인이 사용하는 모든 사이트의 주소와 ID, password를 다 적어놓던가 기억해놨다가 사용해야 했고, 잃어버리기라도 하면 찾기도 힘들어 정말 난감한 상황이 발생하기도 했다. 그러나 현재에는 사용자의 불편함을 개선하여 서비스의 질을 올리려고 많은 노력을 했고, 그에 따라 사용자의 불편함도 대폭 감소하게 되었다. 그에 따라 모든 웹사이트마다 해야했던 회원가입 절차에도 변화가 생겼다. 처음에는 같은 계열사에 있는 웹사이트끼리는 하나의 ID로 병행하여 접속 및 서비스 이용이 가능해졌다. 그 후 차츰 넓혀가더니 지금에 와서는 전혀 상관없는 회사의 I..
37_Step : spring security로 로그인 기능 만들기(3) 로그인 기능 만들기(2)에 살 붙이기 36_Step에서 spring security가 만들어준 로그인 페이지가 아닌 내가 설계한 페이지를 띄우려면 어떻게 해야 하는지에 대해 알아봤다. 로그인 페이지가 있으면 로그인을 할 수 있는 회원가입 기능을 만들어야 한다. 처음에는 security가 만들어준 ID와 password를 가지고 로그인을 했었는데 이제는 우리가 사용할 ID와 password로 회원가입 후 로그인과 회원 DB를 만들어 관리해주면 로그인 기능은 얼추 만들었다고 볼 수 있다. 회원가입 기능 만들기 일단 DB설계를 먼저 해야한다. 회원가입시 어떤 정보들을 받을 거며 그 정보들을 어떻게 관리할 것인지에 대한 설계를 하는 것이 첫 번째로 할 일이다. 간단하게 이름, 비밀번호, 관리자 정도만 입력받는 ..
36_Step : spring security로 로그인 기능 만들기(2) 로그인 기능 만들기(1)에 살 붙이기 35_Step에서 만들었던 것들은 로그인의 가장 기본적인 기능이기 때문에 이를 그대로 사용할 수가 없고, 이를 통해 로그인 기능이 원활하게 작동한다는 것을 확인했으면 이제 디자인적인 부분과 보안 관련 기능을 보강해야 한다. 첫 번째로 내가 만든 로그인 페이지로 전환과 두 번째로 로그인 할 때 ID와 password를 내가 회원가입할 때 기입한 문자로 가능하게 하는 기능을 삽입해야 한다. 1. 로그인 페이지 전환 resources의 하위 폴더에 있는 templates와 static 폴더에 본인의 css나 login,index 파일을 넣고 경로를 꼭꼭!! 잘 확인해서 링크를 연결해 준다. 이렇게 했으면 본인이 만든 페이지로 전환이 되었으니 디자인적인 부분은 해결이 됐다고..
35_Step : spring security로 로그인 기능 만들기(1) spring security spring의 프레임워크 중 하나로 spring기반 애플리케이션의 보안을 담당하는 역할을 하고, filter를 기반으로 인증(Authentication)과 인가(Authorization)을 처리한다. 이름에서도 알 수 있듯이 많은 보안 관련 옵션을 제공하여 보안 관련 로직에 대한 개발자의 수고를 덜어준다. 인증(Authentication) : 사용자의 신원을 확인하는 행위 인가(Authorization) : 사용자의 권한을 확인하는 행위 쉽게 말해서 인증은 로그인과 같이 본인이 누구인지 확인하는 절차이고, 인가는 로그인 후 할 수 있는 행동의 범위라고 생각하면 된다. spring security를 사용하려면 프레임워크를 추가해줘야한다.build.gradle에 아래의 정보를 입..
34_Step : spring과 spring boot java 언어는 이를 메인으로 사용하고 있는 기업들의 수도 많아 수요가 많은 편이다. 따라서 20여년 가까이 개발자들에 의해 생성되었던 java언어 관련한 정보와 소스가 방대하고 할 수 있을 정도로 많다. 때문에 본인에게 필요한 정보와 코드를 골라 적재적소에 사용하는 스킬도 중요하다고 볼 수 있다. spring 개발자들이 20여년 가까이 java언어를 쓰면서 지속적으로 발전시켜왔던 프레임워크 중 하나로, java언어를 사용하면서 불편했던 부분을 편리하게 개선하여 일의 효율을 올리도록 만들어졌다. 같은 일을 여러 번하는 행동과 모든 일처리에 코드를 작성하는 사람이 개입해야 하는 행동에 대한 빈도수를 낮춰주면 효율이 많이 올라가는데 스프링이 그런 역할을 맡아서 처리해주기 때문에 spring 프레임워크를 많이..
33_Step : loC 컨테이너 제대로 사용하기(@bean, @component) IoC 컨테이너란?? - 객체 생성 및 관리를 해주며 의존성을 관리하는 역할을 한다. - 스프링 IoC 컨테이너는 DI(의존성 주입)를 하기 위해 쓴다. DI를 하기 위해서는 주입해주는 객체를 먼저 생성해야 하는데 객체를 어느 위치에서 생성해주냐를 고민할 것이다. BUT!!! 스프링 IoC 컨테이너를 쓰는 순간 그런 고민은 하지 않아도 된다. 그럼 그 매커니즘에 대해 알아보자. DI를 하는 이유?? - DI를 강조하는 이유는 우리가 하나의 프로그램을 만드는데 이때 프로그램의 코드들이 강한 결합에 의해 묶여 있다고 가정해 보자. 프로그램 작동시 변경사항도 있을 거고, 수정해야 할 부분들도 생길 것이다. 강한 결합은 큰 약점이 여기서 나온다. 객체나 클래스가 서로 연관성이 짙게 묶여있기 때문에 작은 부분이라..