Programming

Programming

Lambda와 S3로 Image Resize하기 (근데 이제 React를 곁들인)

화면에 여러 장의 이미지를 렌더링 해야하는 상황에서 이미지들의 로딩 속도가 느려질 수 있다. 그럴 때 사용할 수 있는 솔루션으로는 썸네일을 만들어서 사용하는 방법이 있다. 여러 이미지의 목록을 보여주어야하는 상황에서는 보통 원본 사이즈의 이미지가 필요하지 않다. 따라서 이미지 크기를 줄여서 사용할 수 있는 것! 썸네일은 여러가지 방법으로 만들 수 있지만, 오늘 알아볼 방법은 S3와 Lambda를 이용하는 방법이다! Lambda & S3 Lambda 서버리스의 핵심 기능으로 서버를 프로비저닝하지 않고도 그저 코드(함수)만으로 원하는 동작을 작동시킬 수 있는 컴퓨팅 서비스이다. 람다는 이벤트 기반으로 동작한다. 람다함수를 작동시키는 이벤트가 발생하면 등록된 코드를 실행시킨다. S3 가장 오래된 AWS 서비스..

Programming

Vue.js - data, computed, watch, methods 정리

Vue에 Root Component는 const app = createApp({});으로 생성하고 mount 를 호출하여 Html에 마운트하여 렌더링에 적용할 수 있다. Vue를 새로 시작하면서 기본 DOM 조작 방식에 대해 배웠다. DOM에 변수, 이벤트를 바인딩하는 방법을 배웠고, 각각에 차이에 대해서 정리해보자 data binding 가장 기본적인 binding은 {{ }} 구문을 이용한다. 공식문서에서 Template Syntax라고 정의하고 있다. Message: {{ msg }} 위와 같은 형태이다. {{ }} 내에는 자바스크립트 문법을 사용할 수 있다. 또 다른 바인딩 방법으로 속성 바인딩이 있다. v-bind 키워드를 사용하고 속성에 값을 바인딩할 때 사용한다. 단축해서 :id로 사용할 수..

Programming/Java

Logback의 보안 취약점 알아보기 - DBAppender는 왜 제거되었을까?

서비스 운영 전에 Log를 남기는 작업을 했다. 서비스 운영 로그를 어떻게 누적해서 기록하고 분석에 이용할 수 있을지 고민이 필요했다. 이전 프로젝트에서는 파일로 로그를 남기곤 했다. 하지만 파일로 로그를 남기기만 하면 불편한 점이 있었다. 바로 로그를 확인하려 할 때마다 서버에 접속해서 파일을 하나씩 열어봐야했다는 것이다. 또한 레벨 별로 별도의 파일로 나누는 것말고 다른 검색 방법도 딱히 없었다. 개선 방법으로 두 가지를 생각했다. 1. 로그 분석 시스템 도입 흔히 ELK 스택으로 불리는 ElasticSearch, Kibana, Logstash에 Beats가 추가되었다. 로그를 파일로 저장하고 File beats로 Logstash로 전송 후 전처리하여 ElasticSearch에 저장... 이런 플로우..

Programming/Java

final 키워드

final 클래스 클래스 선언 앞에 final 키워드가 쓰이면 해당 클래스는 상속이 불가하다. //예시 final class FinalClass{ ... } clas SubClass extends FinalClass { //-> 컴파일 오류 ... } final 메소드 final로 메소드를 선언하면 해당 메소드는 오버라이딩이 불가능하다. 자식클래스는 부모 클래스의 특정 메소드를 오버라이딩 할 수 없고 상속받아 그대로 사용하여야한다. final 필드 final로 필드를 선언하면 해당 필드는 상수로 되어 변경이 불가능하다.

Programming/Java

[코딩 기초 트레이닝] java - Day 3

class Solution { public int solution(int a, int b) { int doubleAB = 2*a*b; int ab = Integer.parseInt(Integer.toString(a) + Integer.toString(b)); return ab>=doubleAB?ab:doubleAB; } } 문자열 섞기 class Solution { public String solution(String str1, String str2) { String answer = ""; for(int i = 0 ; i Integer Integer.parseInt(str) String.valueOf(str) Integer -> String Integer.toString(int) 두 수의 연산값 비교하기..

Programming/Java

[코딩 기초 트레이닝] java - Day 2

덧셈식 출력하기 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.printf("%d + %d = %d" , a, b, a + b); } } 문자열 붙여서 출력하기 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); S..

Programming/Java

자바 주피터 노트북으로 실행하기!

파이썬이 좋은 점은 인터프리터 언어라서 컴파일 없이 바로 실행이 되는 것이고, 인공지능, 데이터 공부하면서 주피터 노트북에 익숙해졌고 코드 한 줄씩 확인하면서 짜는게 매우 편리하다. 그 장점을 자바에 그대로 활용하는 방법! ⭐️ 먼저 로컬 pc에 아나콘다가 설치되어있어야한다. 아나콘다가 설치되어있다면, 가상환경을 하나 만들고 주피터 노트북을 설치해준다. (새로운 가상환경은 안만들어도 된다. 원하는 환경에서 해도 된다. base 가능) conda activate venv Requirement jdk >= 9 ubuntu jdk 11 설치방법 sudo apt-get install openjdk-11-jdk IJAVA 다운로드 및 설치 https://github.com/SpencerPark/IJava/rele..

Programming/Java

[코딩기초트레이닝] java - Day 1

문자열 출력하기 // 나의 풀이 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); System.out.println(a); } } 기억할 점 import java.utils.Scanner; Systemn.out.println(); a와 b 출력하기 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = s..

Heaea
'Programming' 카테고리의 글 목록