썸네일 [자격증] 2024 첫 개정 SQLD 자격증 취득!! / 52회 문과생,비전공자, 노베 원패스 후기 올해 초 상반기 목표 중 하나였던 SQLD 자격증 따기!! 뭔가에 홀린듯 갑자기 1월에 SQLD 따야지 계획하고 시험 접수까지 해버렸던 과거... 사실 그냥 접수해놓고 5만원이란 응시료가 아까웠기에.. 원패스하자! 맘 먹고 급하게 벼락치기함..ㅎ SQLD 1회를 응시했고, 52회 시험이었다. 이번년도부터 SQLD의 시험 범위가 달라졌고, 시험 형식도 달라졌다. (사실... 시험 5일 전까지 개정인지 몰랐음.. 바본가..)BackGround나는 먼저, 비전공자이고 뼛속까지 문과인이였다. 현재는 개발자라는 직무를 꿈꾸고 있지만, 사실 개발관련 공부를 시작한지는 이제 약 8-9개월 정도 된 찐 초보이다.  국비를 통해 강의를 들으면서 SQL을 다뤄본적은 있지만, 엄청 기초적인 내용들만이기도 하고, 거의 SQL..
썸네일 JPA 와 Mybatis란 무엇인가? / JPA와 Mybatis의 차이 백엔드에서 데이터베이스를 사용하는 프레임워크로, 가장 많이 쓰이는 기술이 'Mybatis' 와 'JPA' 이다. 데이터베이스 접속을 편하게 사용하기 위해 SQL Mapper 기술과, ORM(Object Relational Mapping) 기술을 제공한다. SQL Mapper 는 '개발자가 작성한 SQL 실행 결과를 객체에 매핑' 시켜주는 프레임워크이며, ORM은 객체와 DB의 데이터를 '자동으로 매핑' 시켜주는 프레임워크이다. SQL Mapper 기술을 제공하는 것이 Mybatis 이며, ORM 기술을 제공하는 것이 JPA 이다. 📌 JPA 란? (Java Persistence API) 자바의 ORM 기술을 쉽게 구현하도록 도와주는 API이다. 즉, 자바에서 객체를 데이터베이스에 저장하고 관리하기 위한 ..
썸네일 [Spring] traceld 와 spanld란? Spring에서 traceId와 spanId란 쉽게 말해, 분산추적시스템의 핵심 개념이다. 분산 시스템에서는 애플리케이션의 각 부분이 동시에 실행되며, 이러한 실행은 여러 서비스 간의 호출 및 통신으로 이루어진다. 이러한 환경에서 애플리케이션의 동작을 추적하고 이해하는 것은 매우 중요하며, 이러한 동작을 해줄 수 있는게 TraceID와 SpanID라고 할 수 있다. TraceID와 SpanID란? TraceID : 분산 시스템에서 전체 트랜잭션을 추적하기 위한 고유 식별자 여러 서비스간의 호출 사이에서 흐름을 추적하는데 사용된다. 모든 로그 및 이벤트에는 동일한 TraceID가 있어야 한다. SpanID : TraceID 내에서 개별 작업 또는 단계를 식별하는 데 사용된다. 각 서비스 호출이 Span으로..
썸네일 [spring boot] Spring Boot 시작하기 앞서 적었던 spring 과 spring boot 의 차이점에 대해 적어보면서 Spring Boot 를 사용해야 하는 이유에 대해 정리해보았다 [spring] Spring 과 Spring Boot 의 차이 'Java'의 대표적인 백엔드 개발 프레임워크(Framework)인 "spring"과 "spring boot" 그래서 그게 뭔 차이인건데? 였던 초기 내 궁금증을 위해 정리했던 내용이다. Spring spring(= spring framework) 은 Java 기반 애플 nyung1127.tistory.com 그래서 Spring Boot는 어떻게 쓰는건데? 하는 다음 궁금증을 해결 ☀️ Spring Initializr 접속하기 스프링 부트 프로젝트는 "웹사이트"를 통해서 만들수 있다. 주로 프레임워크들..
썸네일 [SQLD] 개념정리 2과목 - SQL 최적화 기본 원리 옵티마이저와 실행계획 옵티마이저 : SQL 쿼리를 실행할 때 DBMS 가 최적의 실행 계획을 선택할 수 있도록 하는 역할을 한다 → 쿼리 처리 시 가장 효율적인 방법을 결정하여 쿼리 성능을 최대화한다. 규칙 기반 옵티마이저 (RBO) : 각각의 SQL문에 대해 미리 정의된 규칙을 사용하여 실행 계획을 선택한다. / 현재는 대부분 사용되지 않는 오래된 시스템 비용 기반 옵티마이저 (CBO) : 실행 가능한 다양한 실행 계획 중 가장 낮은 비용을 가진 최적의 실행 계획을 선택한다. / 현대 대부분의 DBMS에서 사용하는 시스템 실행계획 (Execution Plan) : 옵티마이저가 선택한 쿼리의 실행 방법을 설명하는 계획, 쿼리를 어떻게 처리할 것인지를 단계적으로 보여줌 [실행계획의 구성요소] 액세스 방법 ..
썸네일 [SQLD] 개념정리 2과목 - SQL 활용 표준조인 INNER JOIN (내부 조인): INNER JOIN은 두 개 이상의 테이블 간에 일치하는 행만 반환합니다. 즉, 조인 조건을 만족하는 행들만 결과에 포함됩니다. INNER JOIN은 가장 일반적으로 사용되는 조인 유형 중 하나입니다. LEFT JOIN (왼쪽 조인): LEFT JOIN은 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블에서 일치하는 행이 있으면 해당 행을 결합합니다. 오른쪽 테이블에 일치하는 행이 없으면 NULL 값을 가집니다. RIGHT JOIN (오른쪽 조인): RIGHT JOIN은 LEFT JOIN과 반대로 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블에서 일치하는 행이 있으면 해당 행을 결합합니다. 왼쪽 테이블에 일치하는 행이 없으면 NULL 값을 가집니다. FUL..
썸네일 [SQLD] 개념정리 2과목 - SQL기본 정보요구사항 (Information Requirements) 1. 개념 정보요구사항: 비즈니스나 조직에서 필요로 하는 정보의 내용, 형식, 제공 주기, 보고서 형식 등을 명세화한 것으로, 데이터베이스 시스템을 구축하고 운영하기 위한 기본적인 요구사항을 의미함. 2. 구성 요소 데이터 요구사항(Data Requirements): 필요한 데이터의 종류, 속성, 관계 등을 명세화한 것으로, 데이터베이스에 저장될 데이터의 세부 사항을 기술함. 기능 요구사항(Functional Requirements): 시스템이 수행해야 하는 기능에 관한 요구사항으로, 사용자가 시스템에서 수행할 작업이나 프로세스에 대한 설명을 포함함. 성능 요구사항(Performance Requirements): 시스템이 수행해야 하는 작업에 ..
썸네일 [SQLD] 개념정리 1과목 - 데이터 모델과 성능 정규화와 성능 정규화 정규화 = “데이터 분해 과정” : 데이터의 일관성, 최소한의 중복, 최대한의 데이터 유연성을 위한 방법 즉, 정해진 규칙에 따라 데이터를 이용하기 쉽게 만드는 것 정규화 단계 제 1 정규화 : 테이블 내 속성의 원자성을 확보한다, 기본키를 설정하는 단계 제 2 정규화 : 기본키가 2개 이상의 속성으로 이루어진 경우 부분 함수 종속성을 제거한다 ⇒ 1개의 테이블에 모두 있던 것을 → 2개의 테이블로 분리시키는 것 제 3 정규화 : 기본 키 제외 컬럼 간의 종속성을 제거한다 , 이행 함수 종속성 제거하는 단계 BCNF (Boyce-Codd Normal Form) : 강한 제 3 정규화, 결정자 함수의 종속성을 제거한다, 또한, 후보키가 있는 경우 후보키가 기본키를 종속시키면 분해하는 ..
썸네일 [SQLD] 개념정리 1과목 - 데이터 모델의 이해 엔터티 (Entity) : “데이터의 집합” 유형/무형 분류 유형 엔터티 : 물리적, 안정적, 지속적인 엔터티 개념 엔터티 : 물리적이지 X , 개념적으로 존재하는 엔터티 사건 엔터티 : 비즈니스 프로세스에 따라 발생하는 엔터티 발생 시점에 따른 분류 기본 엔터티 : 키 엔터티, 독립적인 엔터티 중심 엔터티 : 기본 ↔행위의 중간 엔터티 / ex_ 계좌, 주문 , 수납 등 행위 엔터티 : 발생되는 엔터티 ✔️ [keyPoint] 발생시점에 따른 분류, 또는 유형/무형에 따른 분류를 할 줄 알아야 한다!! → 정의를 확실하게 알아두기 속성 (Attribute) “엔터티가 가지는 항목” = 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 분리되지 않는 최소의 데이터 단위 속성의 특징 속성은 업무에서 ..
썸네일 개발자에게 클린코드가 중요한 이유 클린 코드(Clean Code) 소프트웨어 개발에서 사용되는 개념으로, 말 그대로 읽기 쉽고 이해하기 쉬운 코드를 작성하는 것이다. 프로그램의 동작을 보장하는 것 뿐 아니라 코드 자체가 가독성이 뛰어나고 유지보수가 쉽도록 작성되어야 한다는 것이다. 클린코드를 작성하지 않게 되면 1. 오류가 발생하기 쉽고 2. 오류를 발견한 후에도 수정이 어렵다 3. 개발 속도를 늦춘다 따라서 당연하게도, 팀 전체와 프로젝트를 위해서는 가장 중요한 가치라고 할 수 있다. 클린코드의 주요 원칙 1. 의미 있는 변수와 함수 사용하기 코드가 길어지고 점점 많아지게 되면 변수와 함수의 이름이 수도 없이 많다. 이때, 이 함수와 변수는 사용 문맥에 맞게 정확하게 명명되어야 한다. 2. 가독성 조은 코드 만들기 코드는 나 뿐만 아니..
썸네일 [VS Code] Mac 에서 GitHub 에 내가 만든 코드 올리기 1. GitHub 계정 생성하기 GitHub: Let’s build from here GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea... github.com 2. Git 설치 Git git-scm.com 3. Terminal 열기 [접속] git config --global user.name "내 깃허브 user 이름" git config --global user.email "깃허브 계정 생성할때 사용..
썸네일 [혼공컴운] Chapter 01 컴퓨터 구조 시작하기 1. 컴퓨터 구조를 알아야 하는 이유 - 문제 해결 - 성능, 용량, 비용 좋은 개발자가 되려면? 컴퓨터 구조를 확실하게 이해해라! 컴퓨터 구조를 이해하고 있다면 문제 상황을 빠르게 진단할 수 있고, 문제 해결의 실마리를 다양하게 찾을 수 있다. 이런 사고를 잘 진행한다면 컴퓨터는 미지의 대상이 아닌, 분석의 대상이다. 성능, 용량, 비용까지 고려하기 컴퓨터 구조를 이해하고 입력과 출력에만 집중한ㄴ 개발을 넘어 성능, 용량, 비용까지 고려하는 개발자가 되어야 한다. 어떠한 상황에서든 예를 들어, 어떤 저장장치가 필요할지, 어느정도 용량의 저장장치가 필요한지 등을 스스로 판단할 줄 알아야 한다. 2. 컴퓨터 구조의 큰 그림 - 컴퓨터가 이해하는 정보 - 컴퓨터의 4가지 핵심 부품 컴퓨터가 이해하는 정보 데..