전체 글

하루 한권 책으로 떠나는 개발여행
· MySQL
SQL 기초알기 SELECT 구문 테이터 베이스를 이요하는 때 핵심이 되는 처리가 바로 검색이다. name(이름) age(나이) address(주소) 자바 30 서울시 C# 21 서울시 C++ 40 경기도 Python 10 강원도 Member테이블 "SELECT NAME,AGE,ADDRESS FROM MEMBER" - SELECT뒤에 나열되어 있는 부분을 SELECT구 여러개 사용가능 - FROM[테이블이름]을 FROM구라고 부르며 테이블에서 검색할경우에는 필수 사용, 그렇지 않으면 필수X WHERE 구문 "SELECT name FROM MEMBER WHERE AGE= 30 나이가 30인이름을 찾는다. 연산자 의미 = 같음 ~와 같지 않음 >= ~ 이상 > ~ 보다큼
· MySQL
mysql -r 계정명 -p ex) mysql -r root -p
AOP란 무엇일까? AOP는 왜 사용할까? AOP를 설명하기전에 상품을 주문을 예시를 들어서 생각해보자 위 사진처럼 3가지의 서비스가 있다고 생각해보자 이 서비스가 실행이 되고나면 로깅을 통해서 로그를 남기는 부가기능을 추가했다. 지금은 비지니스 로직이 3개이기 때문에 별거 아닐수 있다고 생각할수있다. 하지만 만약에 상품 주문에 관해 서비스가 100개라고 생각해보자 그럼 부가기능인 로깅도 100개가 될수있다. 같은 기능을 하는 동일안 코드가 로직안에 무려 100개나 중복되어 있는것이다. 만약 코드에 문제가있어 수정을 하게된다면 어떻까? 100개 코드를 수정해야 한다. 만약에 수정 중에 오타를 작성하거나 1개의 코드를 수정하지 못했다면 대참사가 발생할수있다. 그러면 어떻게 할까..? 부가기능을 따로 빼서 ..
트랜잭션(Transaction) 정의 데이터베이스서 수행되는 작업의 단위를 말한다. 이는 "원자성(Atomicity)",일관성(Consistency)","고립성(lsolation)", "지속성(Durability)"을 준수하는 작업의 단위다. 원자성(Atomicity) : 전부 실행되거나 전부 실행되지 않는다. 일관성(Consistency): 데이터베이스가 트랜잭션이 실행이 되더 라도 항상 일관된 상태를 유지하는 것 고립성(lsolation) : 동시에 여러 트랜잭션이 실행 되더라고 서로가 영향을 미치지않고 독립적으로 실행되는것 지속성(Durability): 트랜잭션이 성공적으로 완료되면 결과가 영구적으로 저정되는 것 트랜잭션 전파 트랜잭션 전파란 트랜잭션의 경계에서 이미 진행중인 트랜잭션이 있을때 또는..
서비스 추상화 서비스 추상화란 어떤 기능이나 상위기준에서 이해하고 다루기 위해서 세부 사항을 숨기고 추상화하는 것을 말한다. 즉 복잡한 시스템을 관리하기 쉽고 이해하기 쉽게 만들기 위함이다. 단 이몇줄로 이해하기 힘들 것이다. 간단한 코드를 통해서 어떤 식으로 추상화를 사용하는지 알아보자 예시 간단한 카페 등급을 예시를 들어서 생각해보자 카페 등급에는 총 3단계로 이뤄저 있다. 초급 단계 : 카페 가입시 기본등급 중급 단계 : 게시글 작성 3회 이상, 로그인 횟수 10회 이상 고급 단계 : 게시글 작성 10회 이상. 로그인 횟수 20회 이상 이 조건을 만족해야만 해당 등급으로 변경된다. 이런 기능을 추가할때는 DAO에다가 기능을 적용할 수도 있다. 하지만 스프링이 추구하는 "역할과 책임"을 위배하는 코드..
Exception 예외 종류 Error java.lang.Error 클래스의 서브 클래스이다. 에러는 시스템에 뭔가 비정상적인 상황이 발생했을때 사용된다. 체크 예외와 언체크 예외 Exception java.lang.Exception 클래스와 그 서브 클래스로 정의되는 예외들은 에러와 달리 개발자가 작업중에 코드에 예외상황이 발생했을때 사용된다. 체크예외 컴파일에러 복구불가능한 에러 RuntimeException만 상속받지않은 예외 RuntimeException java.lang.RuntimeException 클래스를 상속한 예외들은 명시적인 예외처리를 강제하기 때문에 언체크 예외라고 불린다. 런타임 예외 개발자가 부주의해서 발생할 수 있는 경우에 발생하도록 만든 예외 catch나 throws를 사용하지..
오브젝트 및 의존관계 들어가며 토비 님의 토비스프링 책을 참고하여 작성했으며, gradle로 파일을 설정하며 lombok 등의 플로그인을 사용하여 코드를 단순화했습니다. 오브젝트 오브젝트란 자바(Java)에서 "오브젝트"는 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 개념에 기반한 핵심 요소입니다. 객체 지향 프로그래밍은 현실 세계의 사물을 모델링하고 이를 소프트웨어로 구현하는 개념입니다. 스프링을 이해하려면 일단 오브젝트에 대해서 관심을 두어야한다. 애플리케이션에서 오브젝트가 어떻게 생성되며, 어떤 관계 맺고 사용되고 소멸되기까지 전 과정을 이해해야 하는 것이 중요하다. 결국 오브젝트를 의 설계 방향으로 발전했다. 객체지향 설계의 기초를 비롯해서이다.(재활용과, 더..
상품등록을 위한 엔티티 설계 및 등록하기 들어가며 이번포스팅에서는 상품을 등록하는 기능을 개발해 보겠습니다. (도서 판매 페이지를 기준으로 개발) 엔티티 설계 사용자가 상품을 등록할때에는 여러 개의 상품을 등록할 수 있으며, 상품은 사용자의 한 명으로만 매핑되도록 설계했으며 아이템엔티티는 상속을 통해서 Book을 설계하도록 했습니다. 엔티티 작성 Member @OneToMany(mappedBy = "member") private List items = new ArrayList(); 일대다 관계 매핑을 위해서 Member 에다가 위에 코드를 추가한다. Item @Entity @Getter@Setter public abstract class Item { @Id@GeneratedValue private Lon..
코드기록사
A steady developer