스프링 JPA를 사용하여 many-to-many 를 표현하기 위해서는 중간 테이블을 '직접' 만들어야 한다. 반면에 django 는 many-to-many 를 중간 테이블을 자동 생성해준다. 그렇게 되는 원리와 왜 자동으로 생성해주는지를 알아보자 원문 -- Extra fields on many-to-many relationships When you’re only dealing with many-to-many relationships such as mixing and matching pizzas and toppings, a standard ManyToManyField is all you need. However, sometimes you may need to associate data with the re..
회사에 입사 한지 한 달 하고도 2주가 지났다. 6주 지남. 그런데 아직도 제대로 회사 서비스를 이해하기가 쉽지가 않다. 처음 접해보는 서비스면서 회사 코드를 보면서 드는 생각은 정말 코드를 많이 안쳐봤다는 거다. 개발자는 코드를 쳐야 개발자도 많은 코드를 쳐야 여러 코드를 빠르게 이해할 수 있고, 눈치껏 코드를 알아갈 수 있고 갖고 갈 수 있고 코딩할 수 있다. 부족함을 많이 느낀다. 개인의 속도대로 가야 오버페이스 하지 않고 지치지 않기에 개인의 페이스를 지키고 싶지만, 막상 마음의 조급함으로 그렇지 못하다. 많은 이야기를 들어봤기 때문에 그렇게 막... 심적으로 힘들지는 않지만, 못한다는게 좀 힘들다. 개인의 공부를 어떤식으로 가져가야할지 어떤 공부를 해야할지 고민이 많다. TIL 을 하도록 노력하..
JPQL (Java Persistence Query Language) JPA를 사용하면 엔티티 객체를 중심으로 개발 검색을 할 때도 테이블이 아닌 엔티티 객체를 대상으로 검색을 해야한다. 하지만 모든 DB 데이터를 객체로 변환해서 검색하는 것은 불가능하다. 애플리케이션이 필요한 데이터만 DB에서 불러오려면 결국 검색 조건이 포함된 SQL이 필요하다. 그래서 JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어를 제공한다. SQL과 문법이 유사하고, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN등을 지원한다. JPQL은 엔티티 객체를 대상으로 쿼리를 질의하고 SQL은 데이터베이스 테이블을 대상으로 쿼리를 질의한다. ----------------------------..
스프링 시큐리티를 적용하면서 직접 시큐리티를 커스텀 설정한다. Spring @EnableWebSecurity vs @EnableGlobalMethodSecurity Protecting Our Endpoints --> @EnableWebSecurity With Spring Security on the classpath, Spring Boot Security Auto-Configuration‘s WebSecurityEnablerConfiguration activates @EnableWebSecurity for us. AD This applies Spring's default security configuration to our application. Default security activates both ..

Spring Core 인 Bean과 Container의 관계를 알고 있습니다. 스프링은 좋은 객체 지향 어플리케이션을 만들 수 있도록 도와주는 하나의 프레임워크 입니다. 따라서 스프링의 핵심은 객체 지향입니다. 이러한 객체 지향의 방향으로 스프링의 bean과 container는 스프링의 core입니다. 스프링 컨테이너 는 객체의 생명주기를 관리, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것 인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해줍니다. 객체관리 주체가 프레임워크(Container)가 되기 때문에 개발자는 로직에 집중할 수 있는 장점이 있습니다. 그렇다면 스프링 Bean은 무엇인가? Bean 은 스프링 컨테이너에 등록된 객체를 말한다. 따라서 스..
일반 CRUD Repository와 다르게 JPA Repository의 차이는 무엇일까? 그리고 JPA Repository 가 제공하는 쿼리 메소드는 일반적으로 우리가 사용하는 쿼리와 어떤 차이가 있는것일까? Working with Spring Data Repositories The goal of the Spring Data repository abstraction is to significantly reduce the amount of boilerplate code required to implement data access layers for various persistence stores. Spring Data Repositories를 사용하는 이유 Spring Data repository abst..

Spring Framework Spring Core 인 Bean과 Container의 관계를 알고 있습니다. 스프링의 특징인 IoC/DI 를 관계를 알고 있습니다. Spring AOP를 관계를 알고 있습니다. Spring MVC 를 이용해 프로젝트를 진행하였습니다. MVC 패턴에 대해 설명해주세요 - jwt JWT는 JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 웹 토큰입니다. 토큰에서 사용할 정보 JWT는 헤더, 페이로드, 시그니쳐 3 부분으로 이루어지며 각 부분은 Base64Url로 인코딩 됩니다. 토큰의 헤더는 시그니쳐를 해싱하기 위한 알고리즘이 지정되어있고 페이로드는 토큰에서 사용할 정보가 담겨있습니다. 시그니쳐는 토큰을 인코딩 혹은 유효성 검증을 할 때 사용하는 고유한..

JAVA OOP의 특징인 상속, 캡슐화, 다형성, 추상화 를 설명할 수 있습니다. - 캡슐화 (자바 접근 제한자) : 정보의 은닉 실제로 구현 부분을 외부에 드러나지 않도록 하는 것 변수와 메소드를 하나로 묶음 데이터를 외부에서 직접 접근하지 않고 함수를 통해서만 접근 public : 모두가 접근 가능 protected : 상속 / 같은 패키지 내 클래스에서 접근 가능 default : 같은 패키지 내 클래스에서 접근 가능 private : 본인만 접근 가능 -상속 : 재사용 + 확장 자식 클래스가 부모 클래스의 특성과 기능을 물려받는 것 기능의 일부분을 변경하는 경우 자식 클래스에서 상속받아 수정 및 사용함 상속은 캡슐화를 유지, 클래스의 재사용이 용이하도록 해 준다. -추상화 인터페이스로 클래스들의 ..