전체 글 219

강의 10

2번째 시대 :웹 어플리케이션의 시대 웹페이지의 시대에서 가장 중요하게 작용한것이 검색엔진이라 생각한다. url의 중요성이 대두되면서 rest라는 방식이 대두된다. (이전에는 쿼리스트링을 통해 페이지를 분기했다) url은 locator를 이야기하는것이고 uri 는 identifier이다 (즉 id라는 말이라 전세계에서 유니크해야한다) 웹과 앱의 가장 큰 차이점은 공유이다 (웹은 공유가 너무 쉬운데 앱은 기능에 초점이기때문에 공유하기 쉽지않다) 웹 어플리케이션이라는 시대는 왜 열렸나? -> 기존에 url이동을하면 전체를 다 랜더링하기때문에 너무 느려서 열렸다. ajax가 출현하면서 부분부분에 대한 바꿔치기가 가능하다는 개념들이 열리기 시작했다. 이러면서 생긴 개념이 CSR (Client Side Rende..

SPRING/강의 2021.06.23

강의 9

sql에서 중요한것들 정리를 한번 해보자면 - 빨리실행되야한다(3초를 limit로 둔다) - 필요한 만큼만 빼와야한다 - close가 가장 중요하다. 솔직히 말하면 springJDBC가 좋다고 생각한다~ 마이바티스는 getter setter로 리플렉션 동작을 한다. 웹은 고객이 전문가이다 (어렸을때부터 제일 좋은 사이트만 보고 이용해왔기 떄문에 눈높이가 높다) 고객이 요구하는 부분 1. 화려한 UI 2.Client Server환경에서 벗어나지 못한다 (applicaion환경의 수준을 웹에서 요구하는 경우가 많다 // 엑셀에서 수만개의 데이터를 보는것처럼 웹에서도 그렇게 보기를 바란다.) 웹은 여러개의 정보를 볼수있게 해주는것 앱은 많은 정보를 보는것이 포커스가 아니라 한정적인 기능을 전문적으로 하게해주는..

SPRING/강의 2021.06.23

강의8

DTO -> 전달용 / read write 둘다가능 규칙이없음 Entity - > JPA에서 주로사용 가장중요한건 @id 어노테이션이다. (pk) VO -> 동등성을 많이 따진다. 개발을할떄 VO만 만들거냐 DTO까지 만들거냐에 대한 가이드 -DTO의 특징:화면친화적 :화면에서 필요한 정보를 다 담아서 이동 -VO : DB친화적 가능하면 VO를 먼저 만들고 나서 DTO를 만들지 고민을 하는게 좋다. 가급적이면 기본자료형은 쓰지 않는것이 좋다 (기본자료형은 0을 기본으로 갖기때문에 널체크를위해 객체형 자료형을쓴다) @Builder를 쓸때는 AllargsConstructor와 NoArgsConstructor를 써줘야 오류가 안난다.

SPRING/강의 2021.06.22

강의6

DB에서 면접에서 물어보는것중에 INDEX써본적있냐? 가 있따 데이터베이스의 인덱스는 B-tree(Balanced tree)로 구성되어 있다 색인이 없으면 찾을때 Full scan 한다. pk를 잡으면 기본적으로 색인이 만들어진다. tree구조의 가장 큰 장점은 빠르다는것 데이터베이스에서는 모든것을 오브젝트로 본다. 국내에서는 sql 튜닝이 필요한 일이 많아서 jpa보다 네이티브sql을 많이 쓰게 된 경향이 있다 마이바티스의 핵심은 게터세터를 쓰는것이다 마이바티스를 개발하는 순서 1. sql을 먼저짠다 (마이바티스를 절대로 먼저만들면안댄다) (실무에서는 어노테이션으로 하지많고 무조건 xml로 마이바티스를 이용한다)

SPRING/강의 2021.06.22

강의 5

SQL인젝션공격이란?? ->sql의 조각을 입력하는것 where id = 'aaa' and pass = 'bbb' 입력이 있는데 aaa에 aaa'-- 를 쓰면 where id = 'aaa' -- 'and.... 오라클에서는 --가 주석처리이기 때문에 사실 pass워드부분은 생략이 된 것이므로 id만 입력해도 로그인이 가능해진다... 자바스크립트는 엔진이 3개가 존재한다(dom엔진 , 랜더링엔진 , 해석기) ->그래서 필요한게 style태그와 script태그 statement와 expression의 차이 (문 과 식) 실행하는것 - > expression :식 선언해놓는것 - > statement : 문 호이스팅이 일어나는 이유는 문들을 먼저 선언하는것을 처리하기 때문이다. 연산자는 실행될때 처리하기 때문..

SPRING/강의 2021.06.22

강의 4

스프링이 다른 프레임워크와 다른점은 기능이 아니라 OOP설계를 위한 프레임워크다 OOP설계 ->컨텍스트 -> ApplicationContext 스프링코어 위에 여러개를 얹어서 개발하는 시스템(마이바티스던 MVC던..) ->굉장히 유연하다는 장점이 있지만 설정이 복잡하다는 단점이 있다 -> 그래서 발전된것이 스프링 부트이다. 스프링에서 제일 유명했던 책은 스프링 인 액션이다 스프링은 간소하게 어플리케이션을 만들자는 취지로 만들어졌는데 여러가지를 지원하다보니 복잡해지고 힘들어진것 ->하지만 우리나라는 전자정부프레임워크를 채택해서 어쩔수없다.. 면접문제1번은 스프링썼을때 장점은? 의존성주입에 대해 설명해보세요 ->new라는 코드가 있으면 개방과 폐쇄의 원칙을 반대하기때문에 어떻게던 외부에서 객체생성을 해서 넣..

SPRING/강의 2021.06.22

강의3

개발을 하기위해서 알아야하는 용어중 하나 Context context란? 경계선or공간이라고 생각하면 된다. 파른곳에서 접근하지못하도록 ->보관하기만 하는 목적으로 하면 컨테이너라고한다 혹은 팩토리 -> 콘텍스트라는 이름이 되면 관리의 개념이 더 들어간다. 클래스파일을 jvm의 클래스로더라는 아이가 jvm에서 사용할 수 있게 해준다. 모든 객체가 java.lang.Object를 상속받는 이유 ->3가지의 기능이 있기 때문 1.운영체제랑 통신하는 메서드가 있어서 객체를 만들어준다 (라이프사이클과 관련된 메서드가 있다) 2. Equals와 Hashcode가 있다. (컬렉션에서 검색에 가장기본이 되는게 Equals나 HashCode를 기반으로 검색하기때문에 제네릭에 기본형이 못들어가는것) 3. 스프링에서 Be..

SPRING/강의 2021.06.21

강의2

의존성주입을 왜 추구하는지? 클래스와 객체의 차이? 명사->엔티티/dto/vo 역활로 구분 -> controller / service/ repository 다형성의 목적은? ->실체를 모르게하는것(다형성의 원칙이다, 실체는모르고 스펙만아는것) ->바꿔치기 용이하게끔 한다. 다형성은 타입기반언어에서만 나온다. 작은규모의 프로그램을 만들떈 타입이없는애들이 더 빠르게 개발가능하지만 규모가 커지면 치명적인 약점이 된다. OOP의 5대원칙 -solid (개방과 폐쇄의 원칙) -> ibm키보드같다 ->좋은코드는 변경을할 필요는 없지만 확장에는 열려있어야한다 annotaion사용과 xml/javaConfig사용 둘중 무엇을 해야하나 선택기준(DI를 위해서) ->Annotation의 최대 약점=소스코드가 없으면 걸 수..

SPRING/강의 2021.06.21

강의 1

스프링개발자는 로드존슨 로드존슨이 c++ 개발자엿다 더 작고 빠르게 개발하기위해 만든프레임워크가 스프링이다.(EJB가 복잡하니까 복잡한게싫어서) 플랫폼 : 없으면 아무것도 못하는거 - 외부에서 인정해줘야함 프레임워크 : 없으면 불편하긴하지만 만들수잇음 라이브러리 : 기능에 충실한거(구조신경안씀, 설계신경안씀) 기능에 포커스를 둠 (구조와 설계를 반영하는것이 프레임워크) 스프링프레임워크가 살아남은 이유 - 스프링은 특정 계층에대해 신경쓰지 않고(스프링은 웹만 목적으로 만든것이 아닌다 ) 그냥 자바에서 OOP를 도와주는 아이다. 스프링프레임워크는 다른프레임워크들을 배척하지않는다(adaptor로 연결) 스프링에 root-context // servlet-contex 설정파일이 두개가 있는 이유? -> 마이바티..

SPRING/강의 2021.06.21