본문 바로가기

전체 글

(124)
REST API란? Server API 적절한 요청이 보내지면 그에 맞는 응답을 각 url을 통해 돌려주는 것. 종류 REST API GraghQL API grpc REST (Representational State Transfer) 자원(해당 소프트웨어가 관리하는 모든 것, ex-데이터 하나하나, 이미지 하나하나)을 이름으로 구분하여 해당 자원의 상태를 주고 받는 (JSON형태나 XML 형태를 이용하여 자원의 상태를 전달) 모든 것 REST는 Representational State Transfer의 약자이다. 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든것들을 의미한다. URI를 통해 자원(Resouce)을 명시하고 HTTP Method(GET, POST, PUT, PATCH, DELETE 등)를 통해 해당..
프레임워크 vs 라이브러리 프레임워크 뼈대를 뜻하며 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합. 프로그래머가 그 안에서 필요한 코드를 작성한다. 라이브러리 단순 활용가능한 도구들의 집합 프로그래머가 짜놓은 코드에 자신이 원하는 기능을 구현하고 싶을 때마다 라이브러리를 사용할 수 있다. [참고] https://webclub.tistory.com/458
정적 타입 언어 vs 동적 타입 언어 정적타입 컴파일 타임에 타입이 결정되는 언어, 직접 변수의타입을 명시해줘야 함 정적타입 언어 장점 타입관련 런타임 오류 방지 가독성 ( 협업, 장기개발 및 유지보수에 유리) 실행속도 빠름 동적타입 런타임에 타입이 결정되는 언어 (ex. Javascript) 동적타입 언어 장점 규칙이 적어서 코드가 짧음 빠르게 코드를 작성할 수 있음
NPM과 Yarn NPM이란? npm은 Node Packaged Manager로 node.js에 필요한 패키지들을 관리한다. 언제든지 필요한 모듈을 다운할 수 있고 즉, 처음부터 코딩할 필요 없이 필요에 따라 알맞은 모듈을 다운해 사용할 수 있다. 하지만, 모듈을 수정하기 힘들다는 단점때문에 모듈을 개발한 개발자에게 의존적이다. 모듈 : 프로그램의 구성요소 중 특정 기능을 수행할 수 있는 코드의 집합(라이브러리). npm은 우리가 라이브러리등을 다운로드, 설치할 때 사용하는 CLI(Command Line Client)를 포함한다. 사용법 npm -version 제일 기본이자 어떤 프로그램이던지 설치 후 항상 설치가 잘 되었나 확인하기 위해 사용하는 버전 확인 명령 npm init Node.js 프로젝트를 시작할때 pack..
Node.js란? Node.js란? Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 1. 자바스크립트를 활용하며 2. Non-blocking I/O와 단일 스레드 3. 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임이다. 런타임 : 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 뜻한다. ⇒ node.js는 단일쓰레드 이벤트 루프 기반 비동기방식이다. 1. javascript vs node.js javascript 스크립트 언어는 특정한 프로그램 안에서 동작하는 프로그램이기 때문에 웹 브라우저 프로그램 안에서만 동작을 한다. 즉 웹 브라우저 안에..
[spring boot] 벌크성 수정 쿼리 // member repository @Modifying(clearAutomatically = true) @Query("update Member m set m.age = m.age + 1 where m.age >= :age") int bulkAgePlus(@Param("age") int age); @Modifying : jpa에서 .excuteUpdate와 동일, update 쿼리는 @Modifying 필수 벌크성 쿼리 실행 후 영속성 컨텍스트 초기화: @Modifying(clearAutomatically = true) (기본값은 false ) 따로 flush, clear 안 해도 됨. 반환타입 : int // test @Test public void bulkUpdate() throws Exception..
[spring boot] 페이징과 정렬 페이징과 정렬 파라미터 org.springframework.data.domain.Pageable : 페이징 기능 (내부에 Sort 포함) org.springframework.data.domain.Sort : 정렬 기능 특별한 반환 타입 org.springframework.data.domain.Page : 추가 count 쿼리 결과를 포함하는 페이징 org.springframework.data.domain.Slice : 추가 count 쿼리 없이 다음 페이지 유무만 확인 가능 (내부적으로 limit+1 조회) List (자바 컬렉션) : 추가 count 쿼리 없이 결과만 반환 페이징과 정렬 사용 예제 Page findByUsername(String name, Pageable pageable); //tota..
[spring boot] 반환 타입 스프링 데이터 JPA는 유연한 반환 타입 지원 List findByUsername(String name); //컬렉션 Member findByUsername(String name); //단건 Optional findByUsername(String name); //단건 Optional 조회 결과가 많거나 없으면? (ex. 특이한 이름을 찾는 경우) 컬렉션 결과 없음: 빈 컬렉션 반환 단건 조회 결과 없음: null 반환 결과가 2건 이상: javax.persistence.NonUniqueResultException 예외 발생