분류 전체보기
-
웹 성능 최적화하는 여러 가지 방법 웹 최적화 : 최고의 웹 성능을 구현하기 위해 최고의 조건을 만드는 다양한 노력을 의미한다. 즉, 최고의 성능을 만드는 것이 웹을 최적화하는 방법이다. 최적화에는 크게 세 가지 방법이 있다. Front-End 최적화 : 웹 UI/UX 관련된 최적화이다. 주로 HTML, JS, CSS, Image의 최적화를 진행한다. 최적화가 잘 되어있는 웹사이트는 브라우저에서 콘텐츠를 다운로드, 로딩, 렌더링 할 때 속도가 빨라진다. 브라우징 시간 별 콘텐츠를 볼 때 대부분의 시간은 Front-End에서 발생한다. Front-End 최적화하는 대표적인 방법은 다음 표와 같다. 스트립트를 병합하여 브라우저의 호출 개수를 줄인다. 도메인 수를 줄여 DNS 조회를 최소화한다. 스크립트 크기..
신입 개발자의 기록[12/05 웹 최적화]웹 성능 최적화하는 여러 가지 방법 웹 최적화 : 최고의 웹 성능을 구현하기 위해 최고의 조건을 만드는 다양한 노력을 의미한다. 즉, 최고의 성능을 만드는 것이 웹을 최적화하는 방법이다. 최적화에는 크게 세 가지 방법이 있다. Front-End 최적화 : 웹 UI/UX 관련된 최적화이다. 주로 HTML, JS, CSS, Image의 최적화를 진행한다. 최적화가 잘 되어있는 웹사이트는 브라우저에서 콘텐츠를 다운로드, 로딩, 렌더링 할 때 속도가 빨라진다. 브라우징 시간 별 콘텐츠를 볼 때 대부분의 시간은 Front-End에서 발생한다. Front-End 최적화하는 대표적인 방법은 다음 표와 같다. 스트립트를 병합하여 브라우저의 호출 개수를 줄인다. 도메인 수를 줄여 DNS 조회를 최소화한다. 스크립트 크기..
2023.12.05 -
JWT 토큰 조사 및 구현하기 이번에는 JWT를 조사하고 JWT 토큰의 발급 및 사용, 재발급을 구현해 보았다. JWT 토큰은 학원에서 프로젝트 때 잠깐 써본 것밖에 없어서 살짝 어려움이 있었지만 나름 재미있던 것 같다. 먼저 JWT 사용을 위한 라이브러리를 추가해준다. io.jsonwebtoken jjwt-api 0.11.2 io.jsonwebtoken jjwt-impl 0.11.2 runtime io.jsonwebtoken jjwt-jackson 0.11.2 runtime application.yml 에 jwt 설정도 해준다. jwt: secret: nOmi70nNMA6ORMsiQC2035fgrsuguUT0ccrE4mL4HwQyy1abKXUphnEiKkn5Vzg1Bfs9i9k+dq3uO3yFAIE08..
신입 개발자의 기록 [11/29 ~ 12/04]JWT 토큰 조사 및 구현하기 이번에는 JWT를 조사하고 JWT 토큰의 발급 및 사용, 재발급을 구현해 보았다. JWT 토큰은 학원에서 프로젝트 때 잠깐 써본 것밖에 없어서 살짝 어려움이 있었지만 나름 재미있던 것 같다. 먼저 JWT 사용을 위한 라이브러리를 추가해준다. io.jsonwebtoken jjwt-api 0.11.2 io.jsonwebtoken jjwt-impl 0.11.2 runtime io.jsonwebtoken jjwt-jackson 0.11.2 runtime application.yml 에 jwt 설정도 해준다. jwt: secret: nOmi70nNMA6ORMsiQC2035fgrsuguUT0ccrE4mL4HwQyy1abKXUphnEiKkn5Vzg1Bfs9i9k+dq3uO3yFAIE08..
2023.12.04 -
ERD 설계는 어려운 것 같다. 이번엔 ERD 설계에 대해 알아보고 이커머스 or 금융상품에 대해 적어도 3개 이상 선택 후 테이블 작성 및 REST API 만드는 것이었다. 무작정 설계하는 것보다 먼저 알아보고 설계를 하는 것이 나아보여 조사를 먼저 해봤다. ERD? Entity Relationship Diagram으로 개체 속성과 개체 간의 관계를 그림 또는 도표로 표현한 것이다. 데이터의 흐름과 연관성을 이해하는데 매우 중요한 역할을 한다. 작성하는 이유로는 쉽게 두 가지가 있다 1. 테이블의 구조를 시각적으로 한눈에 볼 수 있게 해 이해하기가 쉽다. 2. 관계와 관계간의 정보를 나타냄으로 어떤 테이블의 구조로 만들어졌는지 파악할 수 있다. 나는 학원에 있을 때 펀딩사이트 만드는 프로젝트를 한 경험..
신입 개발자의 기록 [11/24 ~ 11/28]ERD 설계는 어려운 것 같다. 이번엔 ERD 설계에 대해 알아보고 이커머스 or 금융상품에 대해 적어도 3개 이상 선택 후 테이블 작성 및 REST API 만드는 것이었다. 무작정 설계하는 것보다 먼저 알아보고 설계를 하는 것이 나아보여 조사를 먼저 해봤다. ERD? Entity Relationship Diagram으로 개체 속성과 개체 간의 관계를 그림 또는 도표로 표현한 것이다. 데이터의 흐름과 연관성을 이해하는데 매우 중요한 역할을 한다. 작성하는 이유로는 쉽게 두 가지가 있다 1. 테이블의 구조를 시각적으로 한눈에 볼 수 있게 해 이해하기가 쉽다. 2. 관계와 관계간의 정보를 나타냄으로 어떤 테이블의 구조로 만들어졌는지 파악할 수 있다. 나는 학원에 있을 때 펀딩사이트 만드는 프로젝트를 한 경험..
2023.12.01 -
아무래도 가운데 정렬이 제일 이쁜듯ㅎ Spring MVC와 JSP를 이용한 웹 개발에 대해 조사하고 구현해봤다. 학원을 다니며 개발에 대해 공부했었던 나는 JSP를 거의 접해보지 않았다. 부트스트랩과 React.js를 사용해 써볼 일이 없어 많이 찾아봤던 거 같다. JSP란? Java Server Pages로 HTML 코드에 Java 코드를 넣어 동적 웹페이지를 생성하는 웹 어플리케이션 도구이다. JSP가 실행되면서 자바 서블릿으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹 페이지와 함께 클라이언트로 응답한다. 기본 태그 지시자 : JSP 페이지의 속성을 지정한다. 주석 : JSP 페이지에 주석을 달 때 사용한다. 선언 : 변수와 메소드를 선언할 때 사..
신입 개발자의 기록[11/21 ~ 11/23]아무래도 가운데 정렬이 제일 이쁜듯ㅎ Spring MVC와 JSP를 이용한 웹 개발에 대해 조사하고 구현해봤다. 학원을 다니며 개발에 대해 공부했었던 나는 JSP를 거의 접해보지 않았다. 부트스트랩과 React.js를 사용해 써볼 일이 없어 많이 찾아봤던 거 같다. JSP란? Java Server Pages로 HTML 코드에 Java 코드를 넣어 동적 웹페이지를 생성하는 웹 어플리케이션 도구이다. JSP가 실행되면서 자바 서블릿으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹 페이지와 함께 클라이언트로 응답한다. 기본 태그 지시자 : JSP 페이지의 속성을 지정한다. 주석 : JSP 페이지에 주석을 달 때 사용한다. 선언 : 변수와 메소드를 선언할 때 사..
2023.12.01 -
11월 20일 첫 출근 지금은 12월 1일이지만 이제부터 출근해서 배웠거나 진행했던 것들을 여기 정리해보려 한다. 개발자는 기록이 일상이어야 하니깐...ㅎ 기록 남기고 일기쓰는 것과 거리가 매우매우 멀었지만 이제부터 가까워져 보도록 하자..! 11월 20일 첫 출근에는 Git의 특,장점과 기본 명령어에 대해 알아보았다. 먼저 Git이란? Git이란 버전 관리 시스템(Version Control System) 중 하나이다. 버전 관리 시스템은 파일 내 변화를 시간의 흐름에 따라 기록했다가, 이후 필요한 상황에서 파일을 꺼내올 수 있는 시스템이다. 어떤 문서나 파일을 작성할 경우에 최종 시안으로 가는 과정에서 수없이 많은 과정과 업데이트가 발생한다. 이 과정에서 특정 시점의 내용이 필요한 경우 버전 관리 시..
신입 개발자의 기록 [11/20]11월 20일 첫 출근 지금은 12월 1일이지만 이제부터 출근해서 배웠거나 진행했던 것들을 여기 정리해보려 한다. 개발자는 기록이 일상이어야 하니깐...ㅎ 기록 남기고 일기쓰는 것과 거리가 매우매우 멀었지만 이제부터 가까워져 보도록 하자..! 11월 20일 첫 출근에는 Git의 특,장점과 기본 명령어에 대해 알아보았다. 먼저 Git이란? Git이란 버전 관리 시스템(Version Control System) 중 하나이다. 버전 관리 시스템은 파일 내 변화를 시간의 흐름에 따라 기록했다가, 이후 필요한 상황에서 파일을 꺼내올 수 있는 시스템이다. 어떤 문서나 파일을 작성할 경우에 최종 시안으로 가는 과정에서 수없이 많은 과정과 업데이트가 발생한다. 이 과정에서 특정 시점의 내용이 필요한 경우 버전 관리 시..
2023.12.01 -
배열에서 주어진 val 값과 요소의 값이 일치하는 것을 배열에서 제거한 후 빈 요소가 없게 앞으로 당기는 문제 문제를 처음 접했을 때 '그냥 배열에서 주어진 값과 똑같은 요소를 다 지워버린 다음에 배열의 길이만 return 해주면 되는거 아니야?' 라고 간단하게만 생각했다. 그러나 반환값은 맞지만 만들어지는 배열이 달랐다. 문제를 풀기 전에 리트코드에서 주어진 설명을 읽어보았더니 답이 보였다. 반복문을 돌릴 때 증가 한계점을 아래와 같이 배열의 길이로 뒀었다. 그렇게 되면 문제점이 배열을 반환할 때 배열의 길이가 줄지 않고 그대로 반환한다는 점이었다. for(int i = 0; i < nums.length; i++) 그래서 배열의 길이를 다른 변수로 설정을 해준 뒤 배열의 요소가 주어진 int 값과 같을..
[리트코드] Deleting Items From an Array - Remove Element배열에서 주어진 val 값과 요소의 값이 일치하는 것을 배열에서 제거한 후 빈 요소가 없게 앞으로 당기는 문제 문제를 처음 접했을 때 '그냥 배열에서 주어진 값과 똑같은 요소를 다 지워버린 다음에 배열의 길이만 return 해주면 되는거 아니야?' 라고 간단하게만 생각했다. 그러나 반환값은 맞지만 만들어지는 배열이 달랐다. 문제를 풀기 전에 리트코드에서 주어진 설명을 읽어보았더니 답이 보였다. 반복문을 돌릴 때 증가 한계점을 아래와 같이 배열의 길이로 뒀었다. 그렇게 되면 문제점이 배열을 반환할 때 배열의 길이가 줄지 않고 그대로 반환한다는 점이었다. for(int i = 0; i < nums.length; i++) 그래서 배열의 길이를 다른 변수로 설정을 해준 뒤 배열의 요소가 주어진 int 값과 같을..
2023.11.30 -
배열 nums1의 m번째 까지의 요소에 배열 nums2의 요소 n개를 넣은 뒤 정렬하라는 문제이다. 이 문제는 반복문 내의 nums1의 인덱스 설정을 m으로만 설정해주면 쉽게 풀 수 있는 문제이다. import java.util.Arrays; class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { for(int i = 0; i < (nums1.length - m); i++) { nums1[i + m] = nums2[i]; } Arrays.sort(nums1); } }
[리트코드] Inserting Items Into an Array - Merge Sorted Array배열 nums1의 m번째 까지의 요소에 배열 nums2의 요소 n개를 넣은 뒤 정렬하라는 문제이다. 이 문제는 반복문 내의 nums1의 인덱스 설정을 m으로만 설정해주면 쉽게 풀 수 있는 문제이다. import java.util.Arrays; class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { for(int i = 0; i < (nums1.length - m); i++) { nums1[i + m] = nums2[i]; } Arrays.sort(nums1); } }
2023.11.29 -
배열의 요소 중 0이 있으면 그 다음 인덱스에 해당하는 요소를 0으로 복제하고 인덱스 하나씩 뒤로 밀어줘야하는 문제 처음 문제를 본 후 든 생각은 '그냥 인덱스에 해당하는 요소가 0이면 한칸씩 미루고 0 하나 복제하면 되겠구나 ' 였다. 그래서 반복문을 사용해서 요소가 0일 때 하나씩 밀어주는 코드를 짰었는데 여기서 중요한 점은 뒤에서 부터 순차적으로 밀어야한다..(앞에서 부터 했다가 똑같은 숫자가 반복되는 경험을 함^^) 그것만 주의하면 어려운 건 없었다. class Solution { public void duplicateZeros(int[] arr) { for(int i = 0; i < arr.length; i++) { if(arr[i] == 0 && i + 1 < arr.length) { for(..
[리트코드] Inserting Items Into an Array - Duplicate Zeros배열의 요소 중 0이 있으면 그 다음 인덱스에 해당하는 요소를 0으로 복제하고 인덱스 하나씩 뒤로 밀어줘야하는 문제 처음 문제를 본 후 든 생각은 '그냥 인덱스에 해당하는 요소가 0이면 한칸씩 미루고 0 하나 복제하면 되겠구나 ' 였다. 그래서 반복문을 사용해서 요소가 0일 때 하나씩 밀어주는 코드를 짰었는데 여기서 중요한 점은 뒤에서 부터 순차적으로 밀어야한다..(앞에서 부터 했다가 똑같은 숫자가 반복되는 경험을 함^^) 그것만 주의하면 어려운 건 없었다. class Solution { public void duplicateZeros(int[] arr) { for(int i = 0; i < arr.length; i++) { if(arr[i] == 0 && i + 1 < arr.length) { for(..
2023.11.29