✅ RDBMS데이터를 테이블 단위로 관리 : 하나의 테이블은 여러 개의 컬럼으로 구성중복 데이터를 최소화 시킴정규화 : 같은 데이터가 여러 컬럼 또는 테이블에 존재했을 경우, 데이터를 수정 시 문제가 발생할 가능성이 높아짐여러 테이블에 분산되어 있는 데이터를 검색 시 테이블 간의 관계(join)을 이용하여 필요한 데이터를 검색 ✅ SQL📌 DDL (데이터 정의어)테이블 생성, 컬럼 추가, 타입변경, 제약조건 지정, 수정 등create, alter, drop, rename, truncate(테이블 초기화)📌 DML (데이터 조작어)CRUD insert, select, update, delete📌 DCL (데이터 제어어)DB, Table의 접근 권한이나 CRUD 권한을 정의특정 사용자에게 테이블의 검색..
✅ 자바 프로그램의 개발과 구동JDK : Java Development Kit / 자바 개발 도구JRE : Java Runtime Environment / 자바 실행 환경JVM : Java Virtual Machine / 자바 가상 기계 📌 객체 지향 프로그램의 메모리 사용 방식코드 실행 영역데이터 저장 영역스태틱(Static) 영역스택(Stack) 영역힙(Heap) 영역public class Start { public static void main(String[] args) { System.out.println("Hello"); }}JRE는 프로그램 안에 main() 메서드가 있는지 확인 main() 메서드의 존재가 확인되면 JVM을 부팅시키고 java.lang 패키지를 스태틱 영역에 가..
✅ 람다식이란?함수형 프로그래밍이란 함수를 정의하고 이 함수를 데이터 처리부로 보내 데이터를 처리하는 기법을 말한다.자바는 함수형 프로그래밍을 위해 Java 8부터 람다식을 지원한다.자바는 람다식을 익명 구현 객체로 변환한다.// Calculable 인터페이스public interface Calculable { void calculate(int x, int y);}// Calculable 인터페이스의 익명 구현 객체new Calculable() { @Override public void calculate(int x, int y) {처리 내용};}// 람다식(x, y) -> {처리 내용};인터페이스의 익명 구현 객체를 람다식으로 표현하려면 인터페이스가 단 하나의 추상 메서드만 가져야 한다.// 인터페..
List입력 순서가 있는 데이터의 집합순서가 있으니까 데이터의 중복을 허락ArrayList, LinkedListSet입력 순서를 유지하지 않는 데이터의 집합.순서가 없어서 같은 데이터를 구별할 수 없음 -> 중복 허락하지 않음HashSet, TreeSetMapkey와 value의 쌍으로 데이터를 관리하는 집합순서가 없고 key의 중복 불가value는 중복 가능HashMap, TreeMap
🚀 들어가며 드디어 기대했던 마지막 프로젝트를 진행했다. 마지막 프로젝트는 백엔드 개발자와 협업하는 팀 프로젝트였고, 프론트엔드 개발자 뿐만 아니라 백엔드 개발자와 소통하면서 정말 많이 배우고 성장할 수 있었다. 이번 팀 프로젝트 기간 동안의 경험들을 회고해보려 한다. ✅ 프로젝트 기간(1.29 ~ 3.25) 동안의 경험들 😧 한 달 전의 나 이미 구현된 API으로 프로젝트를 진행한 경험밖에 없었다. 😎 현재의 나 백엔드 개발자들과의 협업으로 기획부터 프로덕트 배포까지의 전반적인 프로젝트 싸이클을 경험할 수 있었다. 아직 API 개발이 완료되지 않은 시점에서 MSW를 활용하여 API 모킹하는 것을 경험할 수 있었다. 백엔드와의 협업을 통해 프론트엔드 개발에 필요한 API를 설계하고 받은 데이터를 가공하는..
🚀 들어가며 프로필 수정 페이지를 개발하던 중 예상하지 못하던 문제가 발생했다. useQuery 훅을 통해 get 요청으로 받아온 데이터가 일시적으로 undefined였고, undefined의 프로퍼티에 접근하려니 당연히 에러가 발생했다. useQuery의 isLoading 변수를 활용해서 데이터가 불러오기 전까지 로딩 상태를 표시해주려 했지만, 이 방법으로는 해결되지 않았다. 팀원과 문제를 해결하던 중, useQuery 대신 useSuspenseQuery 훅을 사용했고 문제를 해결할 수 있었다. useQuery와 useSuspenseQuery의 차이점에 대해 알아보자 이전에 ✅ 문제해결 ▪︎ 문제의 시작 처음에는 아래와 같이 useQuery 훅을 활용하여 데이터를 받아오는 코드를 작성했다. 하지만 us..
🚀 들어가며 팀 프로젝트에서 프로필 수정 페이지 작업 중 있던 일이었다. 프로필 수정 페이지에서 프로필을 수정하고 저장 버튼을 눌렀을 때, 프로필 페이지로 이동시켜주어야 했고 새로 수정한 프로필 정보가 화면에 렌더링되어야 했다. 하지만 뜻대로 되지 않았고 이전의 프로필 정보가 렌더링되었다. 그리고 새로고침을 한 번한 이후에야 정상적으로 변경된 프로필 정보가 렌더링되었다. ✅ 해결해보기 위의 사진처럼 좌측의 프로필 수정 페이지의 변경내용 저장 버튼을 누르면 input 필드에 입력된 내용들을 body에 담아서 api 요청을 보내게 된다. api 요청이 성공하면 alert 창을 띄우고 프로필 페이지로 navigate 되게 된다. 프로필 페이지로 navigate 되고 나서 바뀐 프로필 정보를 api 요청을 통해..
🚀 들어가며 이번 주 멘토님과의 커피챗 시간에 유익한 질문이 나왔다. React에서 제공하는 Context API가 있음에도 다른 상태 관리 라이브러리가 필요한 이유와 어떤 경우에 둘을 사용해야할지에 대한 질문이었다. 많은 개발자들이 상태 관리 라이브러리를 사용하고는 있지만 Context API와 무엇이 다른지에 대해 깊게 고민하지 않았을 것이다. 나 또한 그랬다. 그저 상태 관리 라이브러리를 사용하는 것이 무조건적으로 옳다고만 생각했었다. 이번 포스팅에서는 Context API와 상태 관리 라이브러리의 차이점에 대해서 다뤄보려고 한다. ✅ 01. Context API Context – React A JavaScript library for building user interfaces ko.legacy...