본문 바로가기

전체 글

(181)
TIL-230913(DB 로직 최소화) 📝오늘 공부한 것 DB 로직 최소화 알게 된 점❗ [ DB 로직 최소화 ] DB로직 최소화는 데이터베이스와 관련된 작업을 최적화하여 데이터베이스 성능을 향상시키고 유지보수성을 높인다. 1. 일관된 데이터 모델링 - 데이터베이스 테이블과 entity를 일관성있게 설계한다. - 중복 데이터를 방지하고 데이터의 일관성과 무결성을 유지할 수 있다. - 데이터베이스 정규화와 역정규화를 효과적으로 활용해야 한다. 2. 비즈니스 로직 분리 - 데이터베이스는 주로 데이터 저장과 관리에 중점을 두어야 한다. - 비즈니스 로직은 서비스 레이어에서 처리되어야 한다. 3. 조회 최적화 - 쿼리를 작성할 때 필요한 데이터만 조회하고 JOIN 및 복잡한 연산을 최소화한다. - 필요한 데이터를 미리 계산하여 캐싱하거나, 데이터베이..
TIL-230912(쿼리 최적화) 📝오늘 공부한 것 쿼리 최적화 알게 된 점❗ [ 쿼리 최적화 ] 데이터베이스의 성능을 향상시키기 위해 신중한 SQL 쿼리를 작성하는 프로세스 개발중에는 액세스하고 테스트하는 데이터의 양이 적다. 그래서, 개발자는 자신이 작성한 쿼리에 대해 빠른 response를 받는다. 그러나 프로젝트가 시작되고 많은 양의 데이터가 데이터베이스에 넘쳐나기 시작하면 문제가 시작된다. 이러한 인스턴스는 SQL 쿼리 응답 속도를 크게 저하시키고 성능 문제를 야기한다. 대규모 데이터로 작업할 때는 아주 사소한 변경이라도 성능에 큰 영향을 미칠 수 있다. 방법 1. 적절한 인덱싱 인덱스는 데이터베이스 테이블에서 데이터 검색작업 속도를 향상시키는 데이터구조이다. 적절한 인덱싱을 통해 데이터베이스에 더 빠르게 액세스할 수 있으며, ..
TIL-230911(멀티프로세스와 멀티스레드) 📝오늘 공부한 것 멀티프로세스와 멀티스레드 알게 된 점❗ [ 멀티 프로세스 ] 하나의 응용프로그램을 여러개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것 각 프로세스 간 메모리 구분이 필요하거나 독립된 주소 공간을 가져야 할 때 사용 장점 : 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스만 죽는 것 이상으로 다른 영향이 확산되지 않는다. 여러 개의 프로세스가 처리되어야 할 때 동일한 데이터를 사용하고, 이러한 데이터를 하나의 디스크에 두고 모든 프로세서가 이를 공유하면 비용적으로 저렴해진다. 단점 : - 멀티스레드보다 많은 메모리 공간과 CPU시간을 차지한다. - Context Switching에서의 오버헤드 º Context Switching 과정에서 캐쉬..
WIL-2023/9월 (2) 2023.09.04. ~ 2023.09.10. 📝이번주 목표 1. 실전프로젝트 - 코드 리팩토링 2. 실전프로젝트 발표 준비 및 발표 3. 인프런 김영한 Spring 끝까지 듣기 ✍🏻이번주 목표 달성 여부 ✅ 실전프로젝트 - 코드 리팩토링 ✅ 실전프로젝트 발표 준비 및 발표 ✅ 인프런 김영한 Spring 끝까지 듣기 💡알게 된 점 총정리(TIL회고) 6주동안 진행되었던 실전프로젝트가 드디어 마무리되었다!! 오늘 멘토님과의 마지막 멘토링 시간이 있었다. 이번 멘토링 시간에는 '1. 자기가 잘한것 칭찬하기, 2. 부족했던 것 이야기하기, 3. 다른 팀원 칭찬하기' 를 하였다. 우선 내가 잘한 것에 대한 칭찬으로는 '실전프로젝트를 시작하기 전만 하더라도 내가 과연 할 수 있을까?라는 의문이 있었지만, 어떻게든..
TIL-230909(프로세스와 쓰레드) 📝오늘 공부한 것 프로세스와 쓰레드 알게 된 점❗ [ 프로세스 ] 실행중인 프로그램 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)를 할당받아 프로세스가 된다. 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있으며, 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 쓰레드이다. 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재 둘 이상의 쓰레드를 가진 프로세스를 멀티쓰레드 프로세스라고 한다. [ 쓰레드 ] 한 프로세스 내에서 동작되는 여러 실행의 흐름 메모리를 서로 공유할 수 있음. 프로세스가 할당받은 메모리 영역 내에서 Stack 형식으로 할당된 메모리 영역은 따로 할당받고, 나머지 Code/Data/Heap 형식으로 할당된 메모리 영역을 공유. [..
TIL-230908(항해99 실전 프로젝트-행동대장(28)) 📝오늘 공부한 것 실전프로젝트 - '행동대장' 최종발표회 📌 '행동대장' 최종발표회 회고 드디어!!!!오늘 최종발표를 진행하였다. 7시이전에는 팀원들과 발표준비를 하고 7시부터 발표회가 시작되었다. 몇몇분들이 오셔서 질문을 해주셨는데 다 리액트에 관련되신 분들만 오셔서 리액트 질문밖에 없었다ㅠㅠ 그래서 질문을 하나도 받지 못했던 것이 많이 아쉬웠다.. 다른 조들의 발표도 보고 그 발표에 대한 멘토님의 피드백을 들으면서 어떤 질문을 받을지 마음의 준비를 해놓고 있었는데, 막상 발표할 때 긴장되서 제대로 대답할 수 없었다ㅠㅠ 우리 프로젝트에 관련해서 스프링부트 이메일을 사용하고 있는데, 비동기로 보내는지 동기로 보내는지에 대한 질문을 하셨다. 코드를 짜면서 가장 어려웠던 부분이 Spring Security랑..
TIL-230907(항해99 실전 프로젝트-행동대장(27)) 📝오늘 공부한 것 실전프로젝트 - '행동대장' 발표준비 실전프로젝트 - '행동대장' 코드리팩토링 - 브로셔 작성, 발표영상 제작 등등 📌 '행동대장' 발표준비 이번 주에는 지금까지 진행했던 프로젝트의 최종발표회 준비를 하였다. 브로셔만들기, 발표영상 찍기, 발표자료 만들기, 간단 소개영상 만들기 등을 하였다. 소개 행복한 동네를 위한 대화의 장소 동네의 불편사항을 사람들과 공유하고 알리는 서비스를 제공합니다. 주요기능 - 불편사항 공유 자신이 느낀 동네의 불편사항에 대해 게시글과 댓글을 작성하며, 이를 통해 커뮤니티 내에서 자유롭게 의견을 공유할 수 있습니다. - 주소 검색 후 지도 이동 특정 지역의 정보에 관심이 있다면 "지역 검색" 기능을 통해 해당 지역으로 쉽게 이동할 수 있습니다. 자신이 살고 있..
TIL-230906(항해99 실전 프로젝트-행동대장(26)) 📝오늘 공부한 것 실전프로젝트 - '행동대장' 코드리팩토링 ⛔문제점 ✔ 수정 전 RefreshToken Entity package com.sparta.actionboss.domain.auth.entity; import jakarta.persistence.*; import lombok.Getter; import lombok.NoArgsConstructor; @Entity @Getter @NoArgsConstructor public class RefreshToken { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String refreshToken; @Column..