본문 바로가기

전체 글

(67)
Java SOLID! 객체지향 설계 5원칙 SOLID SRP (Single responsibility Principle) : 단일 책임 원칙 소프트웨어의 설계 부품(클래스 , 메서드 , 추상체) 등은 단 하나의 책임(역할) 만을 가져야한다. 하나의 책임이라는 것은 모호하며 , 책임의 크기가 클 수도 있고 작을 수도 있다. 중요한 책임의 기준은 변경이며 하나의 객체가 변경 될 때의 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것이다. ex) UI의 변경 , 객체의 생성과 사용을 분리 , MVC모델 OCP (Open Closed principle) : 개방-폐쇄 원칙 소프트웨어의 요소는 확장에는 열려있고 변경에는 닫혀있어야한다. 객체지향의 특징인 다형성을 활용하여 기능의 확장이나 요구사항의 변경이 일어났을 때 기존 코드의 변경..
Spring CORS - Origin - - [Protocol (http , https)] - [Hosthome (localhost , naver.com , google.com)] - [port (80 ,8080 , 8000)] Origin이란 Protoco , host , port를 합친 것을 말합니다. ex : http://localhost:8080 - SOP (Single Origin Policy) - 브라우저가 동일 출처 정책을 준수해 다른 origin의 리소스 접근을 막는 것을 말한다. - CrossOrigin Resource Sharing - 서로 다른 origin끼리 리소스 요청을 받을 수 있게해주는 기능을 정의해둔 표준 SOP (Single Origin Policy)를 우회하기 위한 표준 기술이다.
Spring SQL , ORM - StructuredQueryLanguage - 관계형 데이터베이스 관리 시스템 RDBMS의 데이터 처리 및 관리를 위해 설계된 프로그래밍 언어이다. RDBMS에서의 자료의 검색 , 관리 , 스키마 생성 및 수정 데이터베이스의 접근 관리를 위해 고안되었으며 MySQL , MarianaDB 등 RDBMS들이 표준 언어로 채택하고 있다. - Object Relational Mapping - 객체와 RDBMS의 데이터를 매핑시켜주는 기술이다. 객체지향 프로그래밍 언어 내에서 객체 = DB테이블 가능하게 해주는 역할을하며 RDBMS를 조작하기 위한 SQL을 작성하는 것이 아닌 코드로 DB를 조작이 가능하게 한다. RDBMS를 객체지향적으로 관리하기 때문에 개발자가 비즈니스 로직에 집중할 수 있게 해준다. 단 ..
Transaction Transaction 데이터 베이스 상태를 변경시키기 위해 수행하는 작업의 단위 (CRUD) 트랜잭션은 상황에 따라 여러개가 만들어질 수 있으며 하나의 트랜잭션은 Commit(저장) 되거나 , Rollback(철회)될 수 있다. Commit 하나의 트랜잭션이 성공적으로 끝나 , 데이터 베이스가 일관성 있는 상태에 있음을 의미한다. Rollback 트랜잭션의 원자성이 깨진 것 하나의 트랜잭션 처리가 비정상적으로 종료됨 Rollback 실행시 트랜잭션 재시작 , 부분적 변경 결과를 취소할 수 있다. Transaction(ACID) 원자성(Atomicity) 한 트랙잭션에 실행한 작업들은 하나로 간주한다, 즉 성공 또는 모두 실패 일관성(Consistency) 트랜잭션은 일관성 있는 데이터베이스 상태를 유지한..
Spring Bean -Bean- Spring Container는 객체의 관리, 의존관계의 결정 및 설정 등의 역할을 맡게된다. 스프링에서는 Application을 구성하는 Bean을 관리하기 위하여 Spring Container내부에 BeanFactory를 만들어 관리한다. BeanFactory는 Bean 등록 , 생성 , 관리 , 조회 등의 역할을하며 .getBean() 메서드를 통해 Bean을 인스턴스화할 수 있다.
Spring IOC(제어의 역전) , DI (의존성 주입) - Inversion Of Control- 프로그램의 흐름 (객체의 생성 , 생명주기)을 개발자가 직접 제어하는 것이 아닌 외부에서 제어 및 관리해주는 것을 말한다. - IOC Container - 스프링에서는 Application을 구성하는 Bean을 관리하기 위하여 IOC개념을 이용 Spring IOC Container가 객체를 관리함으로써 DI(의존성 주입) , AOP(관점 지향 프로그래밍)이 가능해지게 된다. Spring IOC Container가 주도권을 가져감으로써 Spring IOC Container가 객체의 관리, 의존관계의 결정 및 설정 등의 역할을 맡게된다. - DI (1)- 객체의 의존성을 개발자가 아닌 외부(IOC Container)에서 주입함으로써 객체간의 결합을 약하게 해주며 유..
Servlet & Dispatcher Servlet Servlet Java를 사용해 웹을 만들기 위한 기술 클라이언트의 요청을 받고 결과를 전송하는 자바 프로그램이다. 서블릿은 자바로 구현된 CGI라고 말한다. CommonGatewayInterface 공용 게이트웨이 인터페이스 웹 서버 상에서 사용자의 프로그램을 동작시키기 위한 조합 Servlet의 동작 사용자의 요청 (URL 입력) -> Http Request를 Servlet Container에 전송 ⬇️ Servlet Container는 사용자의 요청을 server로 전송할 HttpServletRequest server의 응답을 사용자에게 반환할 HttpServletResponse 두 객체를 생성한다. ⬇️ Servlet Container가 요청에 적합한 Servlet을 찾아 service() 메서드..
Rest API Put & Patch PUT PUT PATCH 원본 DATA {"name" : "plo", "age" : "25"} {"name" : "plo", "age" : "25"} {"name" : "plo", "age" : "25"} 동작 전 {"name" : "hyuk", "age" : "26"} {"name" : "hyuk"} {"name" : "hyuk"} 동작 후 {"name" : "hyuk", "age" : "26"} {"name" : "hyuk", "age" : null } {"name" : "hyuk", "age" : "25"} Put (UPDATE) 데이터 전체 수정 데이터 필드 내의 모든 필드를 전달해야한다. 일부만 전달할 경우에는 오류 발생 해당 데이터의 전체를 교체해야한다. Patch (UPDATE) 데이터의 일..