Github Actions
·
개발 ━━━━━/Dev
Github Actions Github 에서 제공하는 CI / CD 툴로 코드 저장소 (Repository) 에 이벤트 (Event) 가 발생하였을 때 구성해둔 Workflow 가 실행되면서 프로젝트를 빌드 및 테스트 후 배포까지 진행되는 서비스이다. CI / CD 란? CI (Continuous Integration) : 지속적인 통합이라는 뜻으로 Application 의 새로운 코드 변경 사항을 정기적으로 Build 및 Test 하여 공유 Repository 에 통합되는 것을 의미한다. CD (Continuous Delivery / Deploy) : 지속적인 배포라는 뜻으로 CI 를 넘어 Production 레벨까지 자동으로 배포하는 것을 의미한다. 구성 요소 워크플로우 (Workflow) 하나 이상..
WebSocket 웹소켓
·
개발 ━━━━━/Dev
WebSocket 이란? 서버와 클라이언트 간에 Connection 을 계속 유지하면서 양방향 통신 (Duplex) 을 하여 클라이언트의 요청이 없어도 데이터를 전송할 수 있는 프토로토콜으로 Real-time web application 구현을 위해 널리 사용되고 있다. 프로토콜 (Protocol) - 통신 규약 네트워크의 접속 순서, 통신 회선을 이용하여 컴퓨터와 데이터를 주고 받기 위해서 정한 통신 규약 HTTP (Hyper Text Transfer Protocol) 은 프로토콜의 한 종류로서 웹 서버와 브라우저 사이에 문서를 전송하는데 사용된다. Http vs WebSocket 공통점 클라이언트가 애플리케이션을 사용하기 위해 URL 에 접근하여 HTTP method, header, entity 등의..
프레임워크 (Framework) 란
·
개발 ━━━━━/Definition
Framework 란 정의 프로그래밍에서 특정 운영 체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임 목적에 필요한 것을 고민할 필요 없이 이용할 수 있도록 일괄로 가져다 쓰도록 만들어 놓은 구조화된 틀 라이브러리, API 및 코드 구성을 위한 규칙등을 제공하여 일반적인 프로그래밍 작업을 보다 쉽게 수행 가능 종류 Spring Java 의 웹 프레임워크 Django Python 의 웹 프레임워크 Flask Python 의 마이크로 웹 프레임워크 Ruby on Rails Ruby 의 웹 프레임워크 Laravel PHP 의 웹 프레임워크 Bootstrap 트위터의 JavaScript 기반 웹 프레임워크 Express.js Node.js 의 meteor 프레임워크 NestJS Node...
[LeetCode/Java] 9. Palindrome Number (easy)
·
개발 ━━━━━/Algorithm
Problem https://leetcode.com/problems/palindrome-number/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com Solution class Solution { public boolean isPalindrome(int x) { String[] arr = Integer.toString(x).split(""..
[Spring] Entity 관계
·
개발 ━━━━━/Spring(boot)
1 대 1 관계 단방향 관계 Entity에서 외래 키의 주인은 일반적으로 N(다)의 관계인 Entity 이지만 1 대 1 관계에서는 외래 키의 주인을 직접 지정. 외래 키 주인만이 외래 키를 등록, 수정, 삭제할 수 있으며, 주인이 아닌 쪽은 오직 외래 키를 읽기만 가능 // 음식 Entity @Entity @Table(name = "food") public class Food { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private double price; @OneToOne @JoinColumn(name = "user_id") private User user; } // 고객 ..
[Spring] Filter
·
개발 ━━━━━/Spring(boot)
Filter Spring Security - Filter Chain 기반에서 동작 UsernamePasswordAuthenticationFilter는 Spring Security의 필터인 AbstractAuthenticationProcessingFilter를 상속한 Filter입니다. 기본적으로 Form Login 기반을 사용할 때 username 과 password 확인하여 인증합니다. 인증 과정 사용자가 username과 password를 제출하면 UsernamePasswordAuthenticationFilter는 인증된 사용자의 정보가 담기는 인증 객체인 Authentication의 종류 중 하나인 UsernamePasswordAuthenticationToken을 만들어 AuthenticationM..