분류 전체보기 (84) 썸네일형 리스트형 JPA 면접 대비 공부중 ORM란 객체를 데이터베이스 테이블에 매핑해준다는 것입니다. 패러다임 불일치를 해결하기 위해 개발자들이 기본적으로 해야했던 일들을 대신처리해주어 개발 생산성이 향상됩니다. JPA란? ORM의 자바 표준 인터페이스 입니다. 엔티티의 상태(생명주기)에 대해서 설명해주세요 기본적으로 비영속상태로 아무관계가 없다가 퍼시스트되면 영속상태가 됩니다. 여기서 트랜잭션으로 커밋되면 DB에 가게 됩니다. 또는 리무브 당하면 영속상태가 해제됩니다. 또는 준영속 상태라고 있는데, 트랜잭셔널 블록을 벗어나는 경우에 그렇게 됩니다. 또는 영속성 컨텍스트를 클리어하거나 삭제하면 그렇게 됩니다. 영속성 컨텍스트가 무엇인가? 엔티티를 1차캐시로 관리해주고, SQL쓰기 저장소가 있어서, 쓰기 지연을 지원하는 저장소입니다. 영속성 컨텍.. RestFul url로 의사소통을 말하는 걸까? 아키텍처 스타일 http의 장점을 활용하기 위한 원칙 자원의 표현으로 의사소통 url만 읽고도 어떤 api인지 이해가 가능 URI와 http method를 사용하여 자원과 행위를 표현한다. --- REst가 뭔가요? http로 의사소통을 잘하기 위한 아키텍처입니다. 주소로 의사소통을 하는 것이고, 주소 값과 http method의 종류만 봐도, 이게 대략적으로 어떤 역할을 하겠구나를 알 수 있습니다. 주소는 자원을 의미하며 http method는 행위를 의미합니다. http method는 crud로, get post update delete 기본적으로 있으며, 결국 해당 자원에 대한 crud를 지원한다는 것으로 알 수 있습니다. Index 정리 0. 왜사용하는가? table full scan을 막으려고 1. 인덱스는 select의 성능을 향상시킴. 정확히는 where절 column에 index가 걸려있을 경우. b- tree를 사용하는 것으로 봐서, 최대 logN으로 만들어 줄 것이다. ( 이진트리가 logN으로 좋을 수도 있지만, 편향될 수 있어서, B-tree를 사용하면 편향도가 줄어든다) insert, update, delete의 성능은 하락시킴 2. clustered vs non clustered 클러스터드 인덱스의 경우 auto incremented id (pk)로 이해하면 쉬움 중간에 값을 추가하면 성능상의 손실 ( 다시 재정렬해야되므로) non clustered index의 경우 -> 중간에 값을 추가하는 것에 상대적으로 낫지만 그.. Spring MVC RestController 실행전 정리 (1)Client에서 Server에 Http req를 전송하고, (3) Server에서 Client에 Http res를 전송한다. 그사이에 서버는 (2)무엇인가를 처리한다. MVC패턴 및 Spring MVC에서 (2)에 해당하는 것을 Controller라고 할 수 있다. 고전적인 MVC 패턴에서는 model이 view를 observing하고 있어서, model이 변하면 view가 변경되지만, client에 front web server를 두고 있는 경우, view는 model과 바로 통하지않고, 모든 정보를 controller를 통해 받아온다. 이번 칼럼의 주제는 핵심적인 데이터의 흐름과 Dispatcher Servlet이다. 1. WAS라는 말을 찾아본 결과, 외국에서는 잘 쓰이지않고, 한국에서만 잘 .. Class Adapter vs Object Adapter class adapter는 이중상속(하나는 인터페이스)를 사용하는 어댑터이고, object adatper는 구성을 사용하는 어댑터이다. object adapter가 더 선호된다. 구성을 사용한다는 의미는 경우에 맞게 object adapter를 교체하여 adapter를 사용한다는 뜻이다. class adapter를 사용한다는 것은 이중상속을 사용한다는 것이고, A interface를 구현해야하는데, B class의 기능을 A interface의 함수로 실행하게 해서 adapter의 역할을 수행한다 토비의 스프링 13장 - 스프링 웹 기술과 스프링 MVC 클라이언트 시스템과 연동하는 책임을 맡고 있는 것이 바로 웹 프레젠테이션 계층 스프링은 기술의 변화가 잦은 웹 계층과 여타 계층을 깔끔하게 분리해서 개발하는 아키텍처 모델을 지지한다. 스프링 서블릿/스프링 MVC 프론트 컨트롤러 역할 Dispatcher Servlet 모든 컴포넌트는 서블릿 애플리케이션 컨텍스트의 빈으로 등록되어 동작함 Spring web flow → stateful 스타일의 웹 애플리케이션을 작성하게 해주는 프레임워크 수십여 가지의 자바 웹 프레임워크가 존재하며, 그중 상당수는 스프링과의 손쉬운 연동 기능을 제공해준다. 스프링이 직접 제공하는 웹 프레임워크 사용추천 - 스프링 MVC 13.1.2 두 가지 방향으로 발전하고 있음 유연성과 확장성에 중점을 두고 어떤 종류의 시스템 개발이나 .. 더블 디스패치 import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List posts = Arrays.asList(new Text(), new Picture()); List sns = Arrays.asList(new Facebook(), new Twitter(), new Instagram()); posts.forEach(post -> sns.forEach(s -> post.postOn(s))); } interface Post { void postOn(SNS sns); } static class Text implements Post { public void postOn(SNS s.. 토비 스프링 5장 - 서비스 추상화 트랜잭션을 적용해보면서 스프링이 어떻게 성격이 비슷한여러 종류의 기술을 추상화하고 이를 일관된 방법으로 사용할 수 있도록 지원하는지를 살펴볼 것이다. 5.1 사용자 레벨 관리 기능 추가 의식의 흐름으로 사용자 레벨 관리기능을 추가함. 수정해야할 레거시 코드의 경우는 한번에 작성해도 되지않았을까 싶다. 한번에 도메인을 비교검사하는 checkSameUser같은 것을 활용. jdbc → rowMapper(이것도 jdbc를 사용하는한 자주사용하게 될듯하다.) ResultSet의 rs.get~함수에서 parameter로 오타를 주게되면, 실패한다. 어디서 실패했는지 알기 어려울수 있다. Level에 관한 설계 → 이게 중요한 것일까? 아직은 모르겠다. 다음 설명을 위한 빌드업일까? → 스프링의 기능을 적용하기 적.. 생활코딩 OAuth 정리 저녁에 퇴근하고 머리가 안돌아가서 생활코딩이라는 것을 처음 들어봄 https://www.youtube.com/watch?v=UH5XnjkBqKE OAuth의 목적 - 액세스 토큰 발급 세 종류의 노드 - 나의 서버(서비스), 사용자 ,리소스 서버(구글, 페북 등) 리소스 서버에서 access token을 oauth를 통해 획득하고, 그들의 서비스로부터 데이터를 가져오는 것이 목적 등록 클라이언트가 리소스 서버에 미리 요청을 받아놔야함( 예를 들어, 페이스북 개발자 페이지에서 로그인 관련 자신의 사이트와 리다이렉트 페이지를 추가함) 로그인 버튼을 만약 클릭한다면 -> 구글의 oauth 관련 페이지 + 리다이렉트 주소 같이 보내서 , 액세스 토큰을 리다이렉트 페이지로 가져옴(백엔드에서 처리, 로그인처리) 클.. 토비의 스프링 4장 - 예외 예외를 처리할 때 핵심원칙 - 모든 예외는 적절하게 복구되든지 아니면 작업을 중단시키고 운영자 또는 개발자에게 분명하게 통보돼야한다. 예외 블랙홀 - Catch 구문에서 아무것도 안하면 안된다. 무의미하고 무책임한 throws - 무조건 throws 시키면 안된다 Error - java.lang.Error 의 에러들. OutOfMemory 나 ThreadDeath 같은 에러는 catch 블록으로 잡아봤자 대응 방법이 없기 때문에, 이에 대한 처리는 신경쓰지 않아도 된다. Exception과 체크 예외 - java.lang.Exception - 개발자들이 만든 애플리케이션 코드의 작업 중에 예외상황이 발생했을 경우에 사용된다. Exception은 체크예외와 언체크 예외로 구분된다. 체크 예외 - Runti.. 이전 1 2 3 4 5 6 7 8 9 다음