Go together

If you want to go fast, go alone. If you want to go far, go together.

전체 글 59

문자열 조작

Q1. : 주어진 문자열이 팰린드롬인지 확인하라. 대소문자를 구분하지 않으며, 영문자와 숫자만을 대상으로 한다. https://leetcode.com/problems/valid-palindrome/ Example 1: Input: s = "A man, a plan, a canal: Panama" Output: true Explanation: "amanaplanacanalpanama" is a palindrome. Solutions : import re class Solution(object): def isPalindrome(self, s): s = s.lower() s = re.sub('[^a-z0-9]', '', s) return s == s[::-1] 문자열의 경우 슬라이싱 속도가 매우 빠르다. 슬라..

알고리즘 2022.04.24

Java 언어 특징

객체지향프로그래밍(OOP) 자동 메모리 관리(gc) 운영체제에 독립적 멀티쓰레드 지원 동적 로딩 지원 객체지향프로그래밍 상속 은닉화 다형성 ☆ 추상화 ☆ 자동 메모리 관리 ☆ JVM의 galbage collection이 메모리 관리를 자동으로 수행 운영체제에 독립적 자바는 운영체제에 관계 없이 JVM☆에서 작동함 JVM-Java compiler가 코드를 Byte code로 변환 멀티쓰레드 프로그래밍 하나의 프로그램에서 여러 쓰레드☆를 사용할 수 있다 Thread class ☆ Runnable interface ☆ Dynamoc loading을 지원 애플리케이션 실행시 모든 객체를 생성하지 않고, 필요한 시점에 객체를 생성 가능 출처: https://life-with-coding.tistory.com/430

JAVA 2022.04.09

인증 프론트엔드 통합

배운 내용 CSR 본문 요약 프론트엔드에도 인증을 위해 로그인, 회원가입 그리고 리디렉션을 구현해주어야 한다. 세부적인 구현 설명은 아래와 같다. 로그인, 회원가입 페이지를 구현한다. 백엔드에 HTTP 요청을 보냈을 때 403(forbidden)이 리턴되면 로그인 페이지로 리디렉트(redirect)한다. 백엔드 서비스로부터 받은 토큰을 로컬 스토리지에 저장하고 매 요청마다 해더에 Bearer 토큰으로 지정한다. react-router-dom 라이브러리는 CSR(Client-Side Routing)을 돕는다. 모든 라우팅은 클라이언트 코드 즉, 자바스크립트가 해결한다. 우리의 경우 그 자바스크립트가 리엑트다. 브라우저의 '/' 경로에 처음 접근했을 때 필요한 모든 리소스(html, js, css)가 리턴된..

프로덕션 배포

배운 내용 EC2 로드 밸런서 오토 스케일링 그룹(ASG) VPC 일라스틱 빈스톡 본문 개념 EC2(Elastic Compute Cloud)는 서버 컴퓨터다. 로컬 환경에서 애플리케이션을 실행한 것 처럼 EC2에서 애플리케이션을 실행할 수 있다. EC2에서 애플리케이션을 실행하는 경우 EC2의 IP나 EC2가 제공하는 public domain으로 앱에 접근할 수 있다. 로드 밸런서는 EC2 인스턴스의 스케일을 키울 수 있도록 트레픽을 여러 인스턴스로 분배한다. VIP(Virtual IP)라는 공유 IP로 GET 요청이 오면 로드 밸런서에 연결된 인스턴스들에 트래픽을 균형있게 분배한다. 오토 스케일링 그룹(ASG)는 트래픽의 변동에 따라 자동으로 로드 밸런서에 연결된 인스턴스를 Scale in(서버 증설)..

인증 백엔드 통합

애플리케이션을 배포하려면 어떤 형태로든 인증 메커니즘을 구현해야 한다. 이 장에서는 REST API 인증에 대해 직관적으로 알아볼 것이다. 인증: 사용자가 누구인지? 인가: 사용자 별로 할 수 있는 자원(resource)를 정의한다. 인가의 예시) 인증된 사용자(누구인지 식별된 사용자)가 데이터 A 또는 API(기능) A를 사용할 수 있는가? 만약 사용할 수 있다면 이는 인가된(authorized) 사용자이다. 인증과 인가를 구현하려면 적합한 아키텍처 디자인을 선택해야 한다. 스케일(서비스 사용자 수를 고려한 서비스 크기)에 따른 기존 인증 방식(Basic, 토큰 등의 인증 스탠다드)의 한계와 JSON Web Token을 이용해 해결하는 방법을 알아본다. 또한 스프링 시큐리티, Bearer 인증, JSO..

네이버 클라우드 뉴스 정리

성남시-네이버 클라우드, 의료 빅데이터 플랫폼 구축 협약 2022.03.16 15:59 의료 빅데이터 플랫폼 구축 (의료 데이터 중심 병원 컨소시엄 의료기관이 네이버 클라우드로 데이터 제공)→ 의료 데이터를 필요로 하는 바이오헬스 기업들이 이를 이용하게 하는 것이다. 데이터 비식별화, 표준화가 관건 성남시는 사업비 15억을 지원(https://newsis.com/view/?id=NISX20220316_0001795815&cID=10806&pID=10800) 출처 : http://www.gvalley.co.kr/news/articleView.html?idxno=602161 ‘클라우드’ 춘추전국시대…내달 1일 KT·NHN 분사 2022-03-16 11:49:27 IT 기업들이 DX(디지털전환) 사업의 일환으..

Data Engineer 로드맵

https://youtu.be/SpaFPPByOhM SQL, Python, Linux, 서버 개념(SFTP, firewall) 공부 Flask로 API 만들고 front-end server와 연결하고 응답 받기. (1번째 프로젝트) Data Warehouse 공부하기 (Kimbell's warehouse) online source를 긁어서 계층화된 SFTP에 암호화된 데이터를 저장하고, SFTP → Dataware House로 데이터를 load해라. (2번째 프로젝트) Unit Testing을 공부해라. 'Unit TDD Python' course를 수강해라. Docker를 이용해 Airflow를 lauch해라. (Docker Airflow에 대한 이해를 키워라) (Google Data Certifica..

JAVA Stream map

결론 List dtos = entities.stream().map(TodoDTO::new).collect(Collectors.toList()); // 같은 표현 List dtos = entities.stream().map(entity -> new TodoDTO(entity)).collect ... java stream은 배열 또는 컬렉션 인스턴스에 람다 함수를 적용할 수 있는 기술입니다. 배열 스트림 Arrays.stream 메서드를 사용 String[] arr = new string[]{"a", "b", "c"}; Stream stream = Arrays.stream(arr, 1, 3); // [b, c] 반환 컬렉션 스트림 : 컬렉션 타입(Collection, List, Set) Collection ..

JAVA 2022.03.16

프론트엔드 개발

브라우저는 서버에 있는 자원을 사용자의 컴퓨터로 다운로드한 후 브라우저에서 실행시킨다. js 라이브러리인 React.js를 이용해 프론트엔드를 개발한다. React를 사용하려면 Node.js를 이용해야 한다. Node.js는 브라우저 밖에서도 자바스크립트를 컴파일하고 실행하도록 돕는다. Node.js는 구글 크롬의 V8 자바스크립트 엔진을 실행한다. 우리는 자바스크립트로 된 node 서버를 이용해 프론트엔드 서버를 개발한다. 우리의 프론트엔드 서버는 요청이 왔을 때 HTML, JS, CSS를 리턴한다. NPM NPM(Node Package Manager)은 Node.js의 패키지 관리 시스템이다. gralde이 maven repository에서 라이브러리를 다운받는 것과 비슷하게 npmjs(https:/..