본문 바로가기

우아한 테크톡7

Parameter와 Argument Parameter 매개변수 함수 등 *서브루틴의 input으로 제공되는 여러 데이터 중 하나를 가리키기 위해 사용되는 변수의 한 종류 *서브루틴이란 ? 하나 이상의 장소에서 필요할 때마다 반복해서 사용할 수 있는 부분적 프로그램 Argument 함수의 인수 (수학적) 함수의 결과를 얻기 위해 제공되어야만 하는 값 전달 인자 (프로그래밍) 프로그램, 서브루틴 또는 함수 간 전달되는 값 2023. 9. 10.
CI/CD와 무중단 배포 CI(Continuous Intergration) 지속적 통합이라는 뜻으로 개발을 진행하면서도 품질을 관리할 수 있도록 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통하하면서 관리할 수 있음을 의미한다. 마틴 파울러가 제시하는 CI의 4가지 규칙 모든 소스코드가 살아있고 누구든 현재의 소스에 접근할 수 있는 단일 지점을 유지할 것 빌드 프로세스를 자동화해서 누구든 소스로부터 시스템을 빌드할 수 있게 할 것 테스팅을 자동화해서 언제든지 시스템에 대한 건전한 테스트 수트를 실행할 수 있게 할 것 누구든 현재 실행 파일을 얻으면 지금까지 가장 완전한 실행 파일을 얻었다는 확신을 할게 할 것 CD(Continuous Deployment) 지속적 배포라는 뜻으로 빌드의 결과물을 프로덕션으로 릴리스하.. 2023. 1. 13.
Servlet vs Spring Servlet 웹 애플리케이션을 만들 때 필요한 인터페이스 Servlet은 왜 생겼을까 ? 정적 데이터만 전달하는 Web Server 사용자(요청)에 따라 다른 처리를 해줄 수 없다. 동적인 처리를 해주는 웹 애플리케이션이 없다. 동적 데이터를 처리하는 CGI(Common Gateway Interface) CGI 는 Web Server와 CGI 구현체 간의 규약 누가 작성을 했는지, 리뷰 요청도 보낼 수 있고, 친구도 확인할 수 있고 등 동적 데이터를 처리로 바뀌게 된다. CGI의 문제점은 많은 사용자를 처리하기에는 무리였다. 이러한 기존 CGI에서 개선을 해나갔다. 개선점 1. Process에서 Thread로 변경 개선점 2. 여러 Instance에서 Sigletone 패턴으로 변경 WebContain.. 2023. 1. 12.
웹 소켓 (Web Socket) 웹 소켓 (Web Socket) 두 프로그램 간의 메세지를 교환하기 위한 통신 방법 중 하나. 웹 소켓의 특징 양방향 통신(Full-Duplex) 데이터 송수신을 동시에 처리할 수 있는 통신 클라이언트와 서버가 서로에게 원할 때 데이터를 주고 받을 수 있음 통상적인 http 통신은 client가 요청을 보내는 경우에만 Server가 응답하는 단방향 통신 실시간 네트워킹(Real Time-Networking) 웹 환경에서 연속된 데이터를 빠르게 노출 채팅, 주식, 비디오 데이터 여러 단말기에 빠르게 데이터를 교환 웹 소켓 이전에 비슷한 기술 1. Polling 서버로 일정 주기 요청 송신 2. Real-time 통신에서는 언제 통신이 발생할지 예측이 불가능 불필요한 request와 connection을 생.. 2023. 1. 11.
AOP와 Spring AOP AOP (Aspect Oriented Programming) 관점 지향 프로그래밍 (AOP, Aspect oriented Programming) 관점 지향 프로그래밍 (AOP, Aspect oriented Programming) 관점 지향 프로그래밍 언어로 객체 지향 프로그래밍 뒤를 이은 하나의 프로그래밍 언어 고주 문제를 해결하기 위한 핵심 관심 사항과 전체에 적 jkadv.tistory.com 횡단 관심사(Cross-Cutting Concern)의 분리를 허용함으로써, 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임 애러 객체에 공통으로 적용할 수 있는 기능을 분리해서 개발자는 반복 작업을 줄이고 핵심 기능 개발에만 집중할 수 있음. 기존 크드의 수정이 필요, 코드 중복 발생 프록시 패턴 2. 타.. 2023. 1. 11.
Spring과 Spring Boot의 차이 Spring은 개발자들에게 봄이 찾아왔다....? 과연 봄.....? 그러한 의미적으로 만든 것이 Spring이다. Spring Boot makes it easy 쉽게만든다 to create stand-alone, 단독적인 production-grade 스프링 기반 애플리케이션 Spring based Applications that you can "just run" Dependency Spring 모든 Dependency를 버전까지 정확하게 한땀 한땀 매우 길고 정확하게 넣어줘야한다. Spring Boot 버전관리도 권장 버전으로 자동 설정 starter 2023. 1. 11.
JVM Stack & Heap C/C++의 경우 컴파일 플랫폼과 타겟 플랫폼이 다를 경우, 프로그램이 동작하지 않는다. 개발시에는 문제되지 않는다. 문제는 개발이 아닌 배포할 때 문제가 된다. 이를 해결하기 위해선 타겟 플랫폼에 맞춰 컴파일을 한다. 이를 '크로스 컴파일(Cross Compile)' 이라 한다. JVM 으로 문제를 해결 자바 바이트코드는 타겟 플랫폼에 상관 없이 JVM위에서 동작 JVM은 타겟 플랫폼에 의존 Write Once, Run Anywhere" - Sun Microsysyems 네가 짠 자바 코드를 컴파일해서 배포하면, 어떤 플랫폼이든 다시 컴파일할 필요 없이 실행시킬 수 있어! 하지만 실행하려면 그 플랫폼에 맞는 JVM 이 설치되어 있어야 해! 자바는 네트워크에 연결된 모든 디바이스에서 작동하는 것이 목적 .. 2023. 1. 10.