목록2024/04 (46)
개발자 도전기
오늘 수업에서 Spring security를 이용해 로그인을 구현하는 방법을 찍먹해보았습니다 스터디에서 발표할 것들을 정리하고 저번에 배운 JOIN을 블로그에 정리했습니다 2024.04.30 - [개발공부/SQL] - [SQL] JOIN [SQL] JOINJOIN여러 테이블을 묶어서 조회할 때 사용합니다두 개 이상의 테이블을 결합시킵니다 cartesian productCROSS JOIN으로 두 테이블의 모든 행을 조인합니다컬럼수는 두..abc-datatype.tistory.com
OSI 7계층이란?OSI 7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말합니다 네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7계층이라면, 이 이론을 실제 사용하는 인터넷 표준이 TCP/IP 계층입니다 OSI 7 계층을 나누는 이유?통신이 일어나는 과정을 단계별로 파악할 수 있다흐름을 한 눈에 알아보기 쉽다특정 계층에 문제가 생기면 다른 계층은 수정할 필요 없이 해당 계층만 수리하면 된다 1계층 - 물리계층(Physical Layer)전기적 신호로 데이터를 전송하는 계층통신 단위는 비트이며 1과 0으로 나타난다이 계층에서는 단지 데이터를 전달하기만 할 뿐 데이터를 검증하지 않습니다대표적인 장비로는 통신 케이블, 리피터, 허브 등이 있습니다리피터케이블이 길어질수록 신호가 약해지..
JOIN여러 테이블을 묶어서 조회할 때 사용합니다두 개 이상의 테이블을 결합시킵니다 cartesian productCROSS JOIN으로 두 테이블의 모든 행을 조인합니다컬럼수는 두 테이블의 컬럼 수의 합, 행(레코드) 수는 두 테이블 행의 수의 곱이 됩니다 SELECT *FROM table1 JOIN table2; INNER JOIN두 테이블에 모두 있는 값만 출력합니다SELECT *FROM table1 JOIN table2 ON col1 = col2; LEFT OUTER JOININNER JOIN 값과 왼쪽 테이블의 모든 값을 출력합니다OUTER는 생략 가능합니다SELECT *FROM table1 LEFT OUTER JOIN table2 ON col1..
오늘은 Subquery와 집계함수, GROUP BY에 대해 배우고추가로 컨트롤러와 Mapper 사이의 과정인 Service에 대해서도 배웠다 블로그에는 MyBatis와 정규화에 대해 정리했다 2024.04.29 - [개발공부/Spring] - [Spring] MyBatis란? [Spring] MyBatis란?MyBatis란?자바 오프젝트와 SQL 사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping) 프레임워크입니다JDBC를 통해 관계형 데이터베이스에 엑세스하는 작업을 캡슐화하고 기존 JDBC의 중복작업abc-datatype.tistory.com2024.04.29 - [개발공부/SQL] - [SQL] 정규화(Normalization) [SQL] 정규화(Normaliza..
정규화란?데이터베이스 정규화는 데이터베이스 내의 구조를 조직화하고 최적화하는 과정입니다 정규화를 하는 이유데이터의 중복을 줄이고 데이터의 무결성을 보장한다데이터 효율을 높인다이상 현상을 방지한다일반적으로 제1~3정규화를 진행합니다 이상현상데이터 정규화를 하지 않은 데이터베이스는 다음과 같은 이상현상이 발생할 수 있습니다👉 고객 정보와 주문 정보를 같은 레코드에 저장하는 데이터베이스를 예로 들면,삽입 이상(Insertion Anomaly) : 새로운 데이터를 삽입할 때 원하지 않는 문제가 발생합니다👉 새로운 고객을 등록하려 할 때, 주문 정보가 없어 삽입이 불가능 할 수 있다삽입삭제 이상(Delete Anomaly) : 특정 데이터 삭제 시, 다른 데이터도 함께 손실되는 현상이 발생합니다👉 고객의 정..
MyBatis란?자바 오프젝트와 SQL 사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping) 프레임워크입니다JDBC를 통해 관계형 데이터베이스에 엑세스하는 작업을 캡슐화하고 기존 JDBC의 중복작업을 간소화해줍니다 MyBatis 사용 방법Mapper 인터페이스에 @Mapper 어노테이션을 붙입니다. Mapper 인터페이스를 통해 SQL 쿼리를 실행할 수 있습니다.Mapper 인터페이스의 메소드에 @Select, @Delete, @Insert, @Update 등의 어노테이션을 붙여 실행할 SQL 쿼리를 입력합니다@Mapperpublic interface Mapper02 { } @RequiedAtgsConstructor 어노테이션으로 생성된 생성자로 컨트롤러에 Mapper..
이번주 스터디는 세그먼테이션과 세그먼테이션-페이징 혼용 기법에 대해 발표했다 2024.04.22 - [개발공부/코딩용어] - [STUDY] 세그먼테이션과 세그먼테이션-페이징 혼용 기법 [STUDY] 세그먼테이션과 세그먼테이션-페이징 혼용 기법지난주에는 가상 메모리의 구현 방식 중 하나인 가변 분할 방식 중 페이징에 대해서 알아보았습니다. 오늘은 또다른 가변 분할 방식인 세그먼테이션과, 세그먼테이션-페이징 혼용 기법에 대해abc-datatype.tistory.com 2024.04.26 - [개발공부/SQL] - [SQL] 데이터 타입과 제약조건 [SQL] 데이터 타입과 제약조건데이터 타입(DATA TYPE)문자열- VARCHAR(글자수)문자열 타입을 저장할 수 있고 저장할 수 있는 최대길이를 ()안에 ..
데이터 타입(DATA TYPE)문자열- VARCHAR(글자수)문자열 타입을 저장할 수 있고 저장할 수 있는 최대길이를 ()안에 넣습니다지정된 글자수를 초과하면 저장할 수 없습니다# 문자열# varchar(길이)CREATE TABLE my_table3( name VARCHAR(3), title varchar(5), notes VARCHAR(1000));INSERT INTO my_table3(name, title, notes)VALUES ('이강인', '축구선수', '파리셍제르망');# 에러 발생(글자수 초과)INSERT INTO my_table3(name, title, notes)VALUES ('네이마르', '야구선수', '사우디아라비아'); TEXTVARCHAR보다 많은 문자열을 저장할..
어제는 아파서 블로그 기록을 남기지 못했다😢 2024.04.25 - [개발공부/Spring] - [Spring] IOC (제어의 역전) [Spring] IOC (제어의 역전)객체의 의존성A 클래스가 B 클래스의 객체를 생성해 사용하는 것을 'A는 B에 의존한다'고 말한다public class A{ public static void main(String[] args){ B b = new B(); b.action(); }}class B { public void action(){ System.out.prabc-datatype.tistory.com
객체의 의존성A 클래스가 B 클래스의 객체를 생성해 사용하는 것을 'A는 B에 의존한다'고 말한다public class A{ public static void main(String[] args){ B b = new B(); b.action(); }}class B { public void action(){ System.out.println("A는 B에 의존합니다"); }} 제어의 역전(Inversion Of Control)스프링 컨테이너는 사용자가 new 생성자를 사용해서 객체를 생성하지 않고도 객체가 다른 객체를 사용할 수 있도록(의존할 수 있도록) 한다. 스프링은 객체를 빈으로 생성하고 관리한다. 이때 제어권이 사용자에게서 프레임워크로 이동되는 것을 제어의 역전(..