Technology 46

깃허브(Github) 공동 커밋

깃허브(Github) 공동 커밋 지난 마스터즈 코스 과정에서 페어 프로그래밍을 하면서 공동 커밋을 하는 방법에 대해 알아보았는데, 깃에서는 다음과 같은 형식으로 커밋 메시지를 작성하면 공동 커밋 기능을 제공한다. 커밋 메시지 제목 커밋 메시지 본문 Co-authored-by: author name Co-authored-by: author name 위 형식에서 커밋 메시지 제목과 커밋 메시지 본문은 우리에게 익숙하지만 'author name' 부분과 'email' 부분은 명확히 어떤 것을 작성해야하는지 의문이었다. 우선 author name은 깃의 계정명으로 깃허브 프로필 상에 나와있는 계정명 그 자체이다. 예를 들면 다음과 같다. 그렇다면 email은 무엇일까? 여기에는 깃에 등록된 자신의 메일 주소(g..

Technology/Git 2022.07.15

INSERT + UPDATE = UPSERT?

INSERT + UPDATE = UPSERT? 마스터즈 코스 과정 상 구현했었던 스프링 부트 게시판 웹 앱에서 회원가입 기능과 기존 회원 정보를 수정할 수 있는 기능이 있었다. 이때 레파지토리 단에 save라는 하나의 메서드 내에서 회원가입과 사용자 정보 수정을 구분하여 처리해주고 있었는데, Spring JDBC Template를 사용하여 나타내면 다음과 같았었다. @Override public User save(User user) { User userInformation; try { userInformation = findByUserId(user.getUserId()) .orElseThrow(() -> new NoSuchElementException("해당되는 ID가 없습니다.")); } catch (..

Technology/MySQL 2022.07.15

상태유지기술, 쿠키(Cookie)와 세션(Session)

무상태(Stateless) 프로토콜, HTTP 웹 브라우저와 웹 서버는 HTTP를 통해 데이터를 주고받으며, 웹 브라우저는 데이터 요청자로서, 웹 서버는 데이터 응답자로서 클라이언트/서버 구조를 이룬다. 이때 HTTP는 무상태 프로토콜이라고도 하는데, 서버가 해당 요청에 대한 응답을 하고 나면 그 이후로 클라이언트가 이전에 무엇을 했는지에 대한 정보를 기억하지 못하는 것이다. 이러한 점으로 인해 서버 입장에서는 확장성이 높아지는 장점이 있다. 왜냐하면 서버가 클라이언트별 정보를 별도로 저장하지 않으므로 특정 클라이언트를 전담하는 서버가 따로 존재하지 않기 때문에 클라이언트의 요청이 급격히 늘어나도 서버 입장에서는 서버 대수를 늘리면(스케일 아웃) 그만이다. 하지만 클라이언트 입장에서는 서버에 이전에 보냈..

Technology/Web 2022.07.07

form 태그를 이용한 POST 요청 인코딩 타입 속성 3가지

HTML form 태그의 enctype 속성 3가지 HTML form 태그를 이용하여 특정 서버에 POST 요청을 통해 HTTP 요청 메시지 바디에 데이터(form data)를 보낼 경우 인코딩 타입을 지정할 수 있는데, 이때 form 태그의 enctype 속성을 이용할 수 있다. enctype의 속성 값 즉, 인코딩 타입은 다음과 같이 3개의 타입이 할당될 수 있다. 1. application/x-www-form-urlencoded 2. multipart/form-data 3. text/plain ※ 참고 : form 태그의 enctype에 대한 정의들 1. The enctype attribute of the FORM element specifies the content type used to enco..

Technology/Web 2022.06.26

OAuth 2.0를 통한 인증과 인가(Feat. Github, Spring boot)

인증과 인가 인증(Authentication)이란 무엇일까? 인증은 "사용자가 자신이 누구인지 증명하는 것"이라고 볼 수 있다. PC방을 예로 들어보자. 해당 PC방에서는 밤 10시 이후에는 만 19세(성인) 미만의 청소년 등은 PC방 서비스를 이용할 수 없다는 조건이 있다고 한다. 이때 밤 10시가 되면 현재 이용하고 있는 사람들과 밤 10시 이후에 PC방 서비스를 이용하러 온 사람들은 자신이 성인인지를 입증해야 하는 작업이 필요할 것이다. 이러한 작업을 인증이라고 할 수 있는 것이다. 이를 웹에서 적용해본다면 일례로 로그인을 생각해볼 수 있다. 로그인은 사용자가 자신이 서버에 등록된 회원임을 증명하는 작업 즉, '인증'인 것이다. 반면, 인가(Authorization)란 인증을 통해 조건에 부합하는지..

Technology/Web 2022.06.15