본문 바로가기

Develop/Back-End9

[Back-End] Node.js 첫걸음 Node.js란? 서버나 프레임워크가 아닌 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임 Node.js의 장점 리얼 타임으로 동작 Customizing이 많을 경우 용이 자바스크립트 API 사용 가능 빠른 실행과 성능 Node.js 동작 방식 '이벤트 루프'가 어떤 이벤트가 발생하는지 계속 감시하다가 이벤트가 감지될 경우, 그 작업을 위해 스레드를 생성한다. 작업 스레드: 일종의 작업 공간 이벤트를 처리하기 위해 이벤트 루프는 처리 작업을 작업 스레드에게 맡겨버리고 다른 이벤트 감시한다. 콜백 함수: 작업이 끝나면 실행하는 함수 작업 스레드는 작업을 마치면 이벤트 루프에게 응답을 전송한다. 응답을 받은 이벤트 루프는 콜백 함수의 결과를 클라이언트에게 전송한다. npm v.. 2022. 5. 12.
[Spring Boot] 단위 테스트 코드를 작성해보자 (2) 2021.08.06 - [Develop/Back-End] - [Spring Boot] 단위 테스트 코드를 작성해보자 (1) [Spring Boot] 단위 테스트 코드를 작성해보자 (1) ⊙ TDD? 단위 테스트 코드? TDD란? Test-driven development의 약자로 테스트가 주도하는 소프트웨어 개발 프로세스를 의미한다. 기존에 디자인 - 코드 작성 - 테스트의 순서에서 벗어나 디자인 단계를 미 chocochip101.tistory.com ⊙테스트 코드를 통한 CRUD 연습 JPA Repository를 활용하여 테이블에 SQL 없이 CRUD를 테스트해보겠습니다. insert 작업: save(엔티티 객체) select 작업: findById(키 타입) update 작업: save(엔티티 객체).. 2022. 1. 3.
[Spring Boot] 단위 테스트 코드를 작성해보자 (1) ⊙ TDD? 단위 테스트 코드? TDD란? Test-driven development의 약자로 테스트가 주도하는 소프트웨어 개발 프로세스를 의미한다. 기존에 디자인 - 코드 작성 - 테스트의 순서에서 벗어나 디자인 단계를 미리 정의하여, 테스트 코드를 먼저 작성하는 것부터 시작한다. Red: 항상 실패하는 테스트를 먼저 작성한다 Green: 테스트가 통과하는 프로덕션 코드를 작성한다 Refactor: 테스트가 통과하면 프로덕션 코드를 리팩토링한다 단위 테스트란? 단위 테스트 코드는 TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 의미한다. 그럼 단위 테스트 코드는 왜 필요하며 어떤 이점이 있을까? 단위 테스트는 개발단계 초기에 문제를 발견하게 도와준다 단위 테스트는 개발자가 나중애 코드.. 2021. 8. 6.
[DialogFlow] What is DialogFlow? DialogFlow란? 대화형 사용자 인터페이스(Chatbot)를 설계하고 모바일 앱, 웹 애플리케이션, 기기, 봇, 대화형 음성 응답 시스템 및 관련 용도에 통합하는 데 사용되는 자연어 이해(NLU) 플랫폼이다. 구글이 제공하는 머신러닝 기반의 NLU, NLP를 이용하여 쉽게 챗봇을 만들 수 있다. DialogFlow의 장점 구글이 만들었다. 머신러닝 성능을 의심할 필요가 있을까? 학습 속도가 굉장히 빠르다. 네이버 Clova, 카카오의 i 오픈빌더 등과 현저히 다른 학습 속도를 자랑한다. 다양한 프론트엔드와 연결이 가능하다. Facebook message, Twitter, Line, Telegram, Kik, Slack 등과의 Integration이 가능하여 굳이 애플리케이션의 형태가 아니더라도, 사.. 2021. 7. 30.
[Git] Git 벼락치기! - 초심자 가이드 ※명령어의 기초※ 대용으로 가능(이전 단계로 한 번 이동하는 기능) ※ 기본 명령어 ★git init : 프로젝트의 디렉토리로 이동해서 새로운 git 저장소 생성한다 ★git add : 프로젝트의 디렉토리에 파일을 변경 내용을 staging area로 추가한다 git add .: 현재 디렉토리의 모든 변경 내용을 staging area로 넘긴다 ★git status : 파일의 상태(수정 여부)를 확인한다 ★git clone : 다른 프로젝트에 참여하거나 Git 저장소 복사한다 ★git rm : 파일을 삭제하고 stage 상태로 변환하고 commit 후에 완전히 삭제한다 ※ Commit 관련 ★git commit -m "" : 현재 상태를 커밋하다 git commit --amend : checkout 된 .. 2021. 7. 9.
[Spring Boot] RESTful Web Service 구축하기 ⊙ Spring Intializer Spring Intializer를 통해 우리는 쉽고 빠르게 프로젝트를 시작할 수 있다. 가령 팀 단위로 프로젝트를 진행하는 경우, 자바의 버전과 프로젝트의 버전을 맞춰 나갈 수 있어 효율적으로 사용될 수 있다. 이 글에서는 다음과 같이 설정하고 web service를 구축하려 한다. Spring Intializer Link ⊙ 목표 1. HTTP GET requests(http://localhost:8080/greeting)를 통해 서비스를 구축한다. 2. Greeting 문구를 JSON 형태로 표현한다. Ex) {"id":1,"content":"Hello, World!"} 3. Parameter를 통해 name을 맞춤 설정한다.(http://localhost:8080.. 2021. 6. 5.
[Spring Boot] 프로젝트 기본 구조를 알아보자 ⊙ Spring Boot 기본 디렉터리 Spring Boot 설치 후 프로젝트 생성 시, 디렉터리가 기본적으로 아래의 형식으로 생성된다. src/main/java src/main/resources src/test/java Project and External Dependencies build.gradle 하나씩 알아보도록 하자. ⊙ src/main/java 디렉터리 기존의 스프링 프로젝트와 마찬가지로 클래스, 인터페이스 등 자바 파일이 위치하는 디렉터리이다. 기본적으로 프로젝트 내 패키지에 Application 클래스가 하나 포함되어 있다. 이 파일에는 main 메서드가 하나 선언되어 있는데, SpringApplication.run 메서드를 호출하여 웹 어플리케이션을 실행하는 역할을 한다. 클래스 선언부.. 2021. 5. 1.
[Spring Boot] What is Spring? 스프링은 프레임워크다. 스프링은 오픈 소스다. 스프링은 Ioc컨테이너를 가진다. IoC(Inversion of Control)컨테이너: 각 객체의 생성, 생명 주기의 관리까지 모든 객체의 제어권을 스프링 프레임 워크가 가자고 있음을 의미 스프링이 객체를 스캔하여 heap에서 관리 스프링은 DI를 지원한다. DI(Dependency Injection): 각 클래스 간의 의존 관계를 Bean Definition 정보를 통해 사용자가 원하는 메서드에서 쓸 수 있도록 자동으로 연결해주는 것 스프링은 많은 필터를 가지고 있다. 스프링은 많은 어노테이션을 가지고 있다(리플랙션, 컴파일체킹). 어노테이션: 주석 + 힌트 -> 주석처럼 컴파일러가 무시하지 않음 스프링은 주로 어노테이션을 통해 객체 생성 어노테이션 표기.. 2021. 5. 1.
[Spring Boot] Back-End 공부 시작! ⊙어쩌다 보니 Spring Boot 공부 시작 2021년에 다양한 걸 해보자고 해서 한이음 프로젝트 세 개를 신청했는데... 너무 많이 신청한 것 같기도 하다. NLU, Big Data, ML 위주로 프로젝트 개설이 되었지만, 어떤 프로젝트든 백엔드 개발은 거의 필수니 공부를 안 할 수도 없는 듯하다. 다행히도? 세 프로젝트 모두 Spring Boot를 사용하니 열심히 공부해봐야겠다! 2021. 4. 24.
반응형