본문 바로가기
반응형

Spring13

[개념쌓기]Spring, 왜 쓰는걸까? 그 많은 것들 중에 왜 스프링일까 자바 강국 한국, 종종 다들 너무 당연하게 여겨서 의문조차 품지 않는다. 나조차도 여지껏 사용하다가 왜 쓰는 지를 이제야 자신에게 되묻는다. - 기존 쓰던 프레임워크를 두고 다른 프레임워크를 사용하기엔 부담이 크다 - 그동안 쌓인 래퍼런스가 많다 등이 있을 것이다. 라는 내 생각보단 대표적인 이유는 "전자정부 표준프레임워크"이기 때문인 듯하다. 진짜 잠깐만 짚고 넘어가자. 프레임워크(Framework)란 무엇일까? 단어 그대로 뼈대나 근간을 이루는 코드들의 묶음이다. 즉, 소프트웨어의 구체적인 부분에 해당하는 설계,구현을 재사용이 가능하게해 일련의 협업화된 형태로 클래스들을 제공하는 것이다. 요약하면 기본 흐름이나 구조를 정하는 것이 프레임워크다. 1. POJO기반 구성.. 2022. 10. 14.
[Spring]@NotNull @NotEmpty @NotBlank 의 차이 @NotNull / @NotEmpty / @NotBlank 다 비슷하게 생겼는데 뭐가 다를까 손병호,손흥민,손석구,손연재 전부 손씨지만 성만 손씨지 다 다르 @NotNull @NotNull은 이름에서 보여주듯 null만 허용하지 않는다. 따라서 "" 나 " "은 허용하게 되는 것이다. 그렇기 때문에 만약 초기화된 String이나 " "(공백)을 허용하지 않는다면 사용해서는 안된다. 즉, 초기화나 공백의 값이 들어와 저장은 되야하지만 Null 로 들어온 경우 오류가 나는 변수를 받을 때 사용하면 된다 @NotEmpty @NotEmpty는 null과 "" 둘다 허용되지 않게 한다. @NotNull에서 ""validation이 추가된 것이다. 즉, @NotEmpty는 Null값과 ""은 막히나," "은 허용된.. 2022. 8. 9.
[개념쌓기] @DTO @VO 문제는 본질이다. 본질적인 것이 변화되지 않는 한 나머지 잡다한 것 들은 달라지더라도 단지 외양만 바꾼 것일 뿐이다. 언제쓰는지는 알게 되었으나 왜 쓰는지가 궁금해져서 알아보게 되었다. DTO? 프로세스 간에 데이터를 전달하는 객체 "리펙토링"의 저자 마틴 파울러가 DTO를 어떻게 정의했는지 참고하면, 우리가 원격 인터페이스로 작업을 할 때, 호출에 따른 비용은 매우 비싸다. 그렇기 때문에 우리는 요청의 횟수를 줄여야 하고, 이를 위해 한번의 요청에 더 많은 데이터를 전송해야 한다. 우리는 이를 수행하기 위해 많은 매개변수를 사용할 수 있다. 그러나 이것은 프로그래밍하기 어려운 방법일 뿐더러, JAVA에서는 반환값으로 여러 개의 값을 받을 수 없으므로 더욱 불가능한 일이라 할 수 있다. 그렇기 때문에, .. 2022. 8. 9.
[개념쌓기]ORM? 💡ORM이란? ORM : Object - Realational Mapping -객체와 모델 사이의 관계를 기술하는 도구 -MVC 패턴에서 모델(Model)을 기술하는 도구 -객체와 데이터베이스의 관계를 매핑해주는 도구 Object : "객체"지향 언어(자바,파이썬) Relational : "관계형" 데이터베이스 (H2,MySQL) 백엔드 개발자(Backend Developer) : 웹 서버를 개발하는 개발자 DBA (Database Administration) : 데이터베이스 관리자,데이터베이스를 설계하는 일을 맡은 사람 ORM 사용 이유 - OOP(Object-Oriented Programming),객체 지향 프로그래밍 vs Relational Database,관계형 데이터베이스 - 객체 지향 프로그래.. 2022. 8. 7.
[개념쌓기] DI?IOC? 알수록 왜 알게 많아지는 것일까 커다란 프로젝트를 진행할 때 클래스에 대한 변경이 필요하면 다른 클래스에 영향을 끼치지 않으면서 변경이 가능해야한다.이런 상황에 더 수월하게 변경이 가능하게 도와줄수 있도록 도입된 기능이 DI(Dependency Injection)와 IoC(Inversion of Control)이다 기존에는 자바 프로그래밍시 객체를 생성할 때, 직접 클래스에 new연산자를 이용해 생성했으나 DI는 컨테이너가 이를 수행해준다. 그렇게 되면 직접적인 연관 관계가 발생하지 않는데,이처럼 클래스들의 변경이 자유로워지는 것을 느슨한 결합이라고 한다. 각 클래스 간 결합도가 높게되면 나중에 프로젝트가 복잡해질시 유지보수가 힘들게 된다. 그렇게 등장한 개념이 바로 IoC(Inversion of Con.. 2022. 8. 7.
TIL_@Column #Spring @Column은 객체 필드를 테이블의 컬럼에 매핑시켜주는 어노테이션이다. 여기서 name,insertable, updatable,table을 제외한 나머지 속성들은 DDL 생성 기능을 사용할 때만 사용되는 속성들로 JPA 실행 로직에는 영향을 끼치지 않는 속성들이다. 직접 DDL을 설정하여 DB Table을 구성할 경우 사용할 이유가 없다. Entity만으로 개발자가 DB Table 구조 파악이 가능하다는 장점 위 속성 중 nullable의 경우 Java의 기본 타입(int, long, ...)은 null 값 입력이 불가능 하므로, false를 통해 DB Column에 Not Null 제약 조건을 지정해 두는것이 안전하다. 혹은 직접 DB Column에 Not Null 제약 조건 추가 2022. 8. 7.
TIL_@RequestMapping #Spring @RequestMapping? : HTTP Request로 들어오는 url을 특정 Controller 클래스나 메소드로 연결시키는 역할을 한다 Spring웹 어플리케이션에서 가장 자주 사용되는 어노테이션 RequestMapping은 Controller에 있어서 Class에 적용할 수도,특정 Method에 적용할 수도 있다. - 요청 정보를 매핑 - 해당 url이 호출되면 해당 메소드가 호출 - 어노테이션 기반 동작이기 때문에 메소드 이름은 자유 - 방식은 GET,POST,PUT,DELETE @RequestMapping(value="/url",method = RequestMethod."방식") 그렇다면 @RequestMapping 대신 @PostMapping이나 @GetMapping을 쓰는 이유가 무엇일까.. 2022. 8. 6.
반응형