분류 전체보기 222

패스트캠퍼스 한번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online

웹 개발자로 일을 하고 있는데 프론트엔드로서 경험과 지식은 있지만 백엔드에 대한 지식은 없었던 나는 계속해서 백엔드 영역도 공부해야겠다는 욕심과 갈망을 가지고있었다. Java로 시작해서 백엔드 모든 사이클을 다 경험할 수있는 강의는 없을까 찾던 중 그전에도 패스트캠퍼스를 들었는데 초격차 패키지로 모든걸 경험할 수 있는 강의를 찾게 되었다. 이에 대해 지금까지 들은 강의에 대한 후기를 작성하고자한다. 후기 먼저 Java에 대한 개념이 없던 나는 기초부터 공부를 시작해야했는데 한 번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 는 Java개념부터 차근차근 알려주어서 좋았다. 자바 기초를 잡아주는대만 무려 자바기초문법 5시간+ 객체지향 27시간 총32시간을 배우기때문에 자세히 배울수있다. 또한..

카테고리 없음 2023.12.03

Canvas를 이용한 animation(빗방울효과)

사용자의 컴퓨터마다 fps(hz)가 다르기떄문에 animate를 실행하여 1초마다 y값을 1씩 아래로 이동하게될경우 어떤 컴퓨터는 빠르고 어떤 컴퓨너튼 느리게 움직이게 되서 같은 유저 경험을 할수가없다. 이를 방지하기위해 아래 표처럼 interval과 delta, date를 이용하여 fps 값을 구하고 해당 delta값이 interval 보다 클때마다 동작하도록 구현한다. 아래의 표를 보며 fps에 따라 화면에 그려주는 밀도를 확인해보자. requestAnimationFrame 메서드를 사용하는것을 참고 해당 구현코드 class Particle { constructor(x, y, radius) { this.x = x; this.y = y; this.radius = radius; } draw() { // ..

추상클래스/템플릿 메서드, final 예약어

추상클래스는 상속을 위한 클래스이기때문에 만약 메서드를 구현했다고하더라도 인스턴스로 사용할 수 없다. 아래처럼 abstract을 붙인 클래스가 있다면 아래와 같이 new 를 통한 새로운 인스턴스 정의는 할수 없다. 추상 클레스 및 추상 메서드는 다른곳에서 쓸때 해당 메서드가 정의되어 사용해야한다. 만약 그러고 싶지 않다면 Hook 메서드를 만들어서 사용한다. 템플릿 메서드 추상 메서드나 구현된 메서드를 활용하여 코드의 흐름(시나리오)를 정의하는 메서드이다. final로 선언하여 하위 클래스에서 재정의 할 수 없게 한다. final 예약어 final 변수 : 값이 변경될 수 없는 상수 ex) final static final double PI = 3.14; final 메서드 : 하위 클래스에서 재정의 할 ..

언어/자바 2023.11.11

가상 메서드 원리/메서드 재정의(@Override)

자바의 경우 모든 메서드는 가상 메서드이고 해당 메서드에 대한 address를 가짐 재정의가 안된경우 같은 address를 가리키고 재정의가 된경우 재정의된 메서드주소 address를 가리킨다. 메서드의경우 code영역에 속한다. 위의 코드는 아래 코드를 본후 다시 보면 이해가 쉽다. 기존 부모 클래스 Customer 안의 calcPrice 메서드 public int calcPrice(int price) { bonusPoint += price * bonusRatio; return price; } 자식클래스인 VIPCustomer에서 재정의된 calcPrice 메서드 @Override public int calcPrice(int price) { bonusPoint += price * bonusRatio; ..

언어/자바 2023.11.09

static 변수, 메서드 / 싱글톤패턴

static 변수, 메서드는 데이터 영역에 속함 static 예약어를 사용할때 해당 static 변수나 메서드는 외부에서 클래스로 접근하여 호출가능 여러 인스턴스에서 공용으로 쓰기위해 사용한다. 싱글톤 패턴 프로그램에서 인스턴스가 단 한개만 생성되어야 하는 경우 사용하는 디자인 패턴 static 변수, 메서드를 활용하여 구현 할 수 있음 ex) 회사 // Company.java class public class Company { private static Company instance = new Company(); // 유일한 instance Company 인스턴트 private Company() { // private처리로 외부에서 생성자를 생성하지못하게한다. } public static Compan..

언어/자바 2023.11.06

[Java] 클래스, 인스턴스, 힙메모리

class 를 정의하여 instance로 여러개를 생성하여 사용할 경우 Student studentLee = new Student(); Student studentKim = new Student(); 각 instance객체 클래스마다 힙메모리(동적메모리)를 가진다. 이 힙 메모리는 garbage collector 가 주기적으로 사용하지 않는 메모리를 제거한다. System.out.println(studentKim); System.out.println(studentLee); 다음과 같이 각 클래스 인스턴스를 log를 찍어보면 각각의 참조값을 가지고 해당 주소는 각각 인스턴스가 자리잡은 jvm이 준 주소를 확인할수있다.

언어/자바 2023.11.05

웹 스트리밍 영상 다운로드 받는방법(ffmpeg)

보통 웹사이트에서 mp4형식이 아닌 스트리밍형식의 영상을 재생이 가능하지만 다운로드를 못받는데 m3u8 과 ts를 사용하는 영상의 경우 ffmpeg를 통해 다운로드할수있다. 추후에 m3u8, ts, mp4 와 presigned URL 글을 올리겠지만 HLS(Http Live Streaming) 스트리밍 영상 패턴을 공부하다가 내가 듣고있는 강좌가 있는데 일정 기간이 지나면 못보게 되었는데 이 방법을 이용하면 소장가능하겠다 하여 찾다가 알게되었다. 수동 다운방법 순서 1. brew install ffmpeg 설치 ffmpeg를 통하여 비디오, 오디오, 이미지를 쉽게 인코딩, 디코딩, 먹싱, 디먹싱을 할수있도록 도움을 주는 멀티미디어 프레임워크이다. 2.해당 영상 m3u8의 link address 복사, 이..

공부/기타 2023.10.26

동영상 썸네일 생성 방법(Blob, Canvas, video)

인트로 영상을 보기전에 활용되는 썸네일은 우리가 흔하게 유튜브, 인스타, 페이스북 등 여러 매체를 통해 볼수있다. 하지만 이러한 영상 썸네일을 영상자체속성으로써 보여줄지 아니면 이미지로 추출하여 보여줄지 등 썸네일을 만드는 방법이 여러가지 있지만 그중 현재 서비스에서 사용하는 방식을 설명하고자한다. 결과 위는 mp4 동영상을 선택했을때 img태그에 썸네일을 보여주는 결과물이다. 이렇게 만들기위해선 몇가지 기본적인 개념을 이해가 필요하다. 1. Blob 2. Canvas 먼저 Blob을 알아보면 Binary Large OBjects 의 약자로 바이너리 형태로 큰 오브젝트를 저장한다고 할수 있고, 주로 이미지, 비디오, 사운드 등의 멀티미디어 객체를 나타낸다. Blob 객체 자체로 봤을때는 사실 데이터가 아..

[부동산] 돈독 1기 회고

최근 독서와 재테크에 매우 관심이 많아 여러 모임과 책을 읽고 있었으며 1달간의 부동산 스터디 모임 돈독에 대한 회고록을 쓸려고합니다.어떻게 시작하였을까? 저는 부동산 경매와 독서에 관심이 있었고 정말 아무것도 모르고 살다 부자아빠 가난한 아빠를 읽고 뒤통수를 맞은것처럼 자산을 쌓아야겠다고 생각하였고 마침 우연히 부동산 관련 클럽에 가입하였는데 돈독의 홍보가 있어 무작정 신청하여 시작하게 되었습니다. 무엇을 목표로 했을까?돈독을 통해 저는 다음 사진과같은 9월와 2023년 목표 계획을 잡았는데, 이미 돈독을 통해 몇개는 이룬것 같습니다. 제가 해보고싶었던 목표중 권리분석를 하고 경매 모의투자를 해보게 되었고 부동산, 주식 기초공부는 돈독 독서 미션을 수행하면서 이루고 확감투와 미션을 통해 돈독 수강 잘하..

자산가/부동산 2023.09.26

Graphql 데이터 최적화

Graphql 사용 정의 보통 Graphql 을 사용하는 이유는 Restful API 의 Over-Fetching의 데이터를 Under-Fetching으로 사용하는 것이다. Over-Fetching이란 필요이상의 데이터를 불필요하게 fetch 하는것을 의미하는데 그만큼 서버의 트래픽 부하 및 요청크기가 많아 지기 떄문에 비용면과 사용자 경험측면에서 좋지 않는 점이있다. 이를 해결하기위해 Graphql을 사용함으로써 Under-Fetching 즉, 기존의 데이터량으 필요한만큼과 사용하는 데이터로 줄여서 사용하는 것이다. 문제점 하지만 우리 프로젝트의 문제점은 이러한 이점을 배제한체 모든 데이터를 쿼리에 넣어 불러오기때문에 graphql 에대한 이점이 없었다. 따라서 graphql 최적화를 통해 필요한 데이..

TIL 2023.09.14