ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 개발자 단어 정리
    기타 2020. 10. 29. 10:31

    전역변수 (Global Variable)

    전역변수는 블록, 즉 중괄호로 묶여있는 범위의 바깥 에 선언되는 변수

     

    지역변수 (Local Variable)

    지역변수는 전역변수와는 반대로, 블록 안 에 선언되는 변수

     

    매개변수/인자 (Parameter) 와 인수 (Argument)
    매개변수(또는 인자)는 함수 등에서 사용되는 전달된 값을 받는 변수

     

    인자 vs 매개변수 차이점

    인자(Argument) 는 어떤 함수를 호출시에 전달돼는 값을 말하고 매개 형식 변수(Parameter) 는 그 전달된 인자를 받아들이는 변수를 말합니다.

    여기서 포인트는 인자는 값, 매개 형식 변수는 말 그대로 변수라는 점입니다.

     

    OS 관점에서의 동기와 비동기 

    동기적 방식은 무언가의 완료 사인을 받은 , 그러고 나서 다음 동작을 시행하는 것을 말한다. 비동기적 방식은 완료가 되든 말든 나는 시작한다라는 마인드다. , 자원공유가 일어나는 스레드에서는 동기적 방식을 채택해야 하는 것이다. 동기적 방식의 구현으로 뮤텍스와 세마포어가 있다.

     

    TDD 

    Test Driven Development. 애자일 프로세스의 일환으로, 현재 가장 메인 스트림에 속하는 개발 방법론이다. 개발을 하기 전에 테스트 코드를 먼저 짜본다는 아이디어에서 시작한 개념. 기존의 방법이 [디자인 -> 코드작성 -> 테스트] 였다면, TDD [디자인 -> 테스트 -> 코드작성]  과정이다. 무엇을 테스트할지 디자인하는 과정에서 프로그램의 전체 목적이 명확해지고,  수정의 불필요하게 돌아가는 과정을 방지하게 된다. 또한 테스트 코드를 작성하다보면 객체 지향적이고 모듈화가   코드를 생산하게 된다. 모든 코드가 재사용을 가정으로 만들어지기 때문이다. 또한 보통 테스트는 하나의 기능 단위로 테스트를 하기 때문에, OOP 원칙에 따라 코딩이   것이고 자연스럽게 디버깅 시간도 단축될 것이다. 그리고 무엇보다도, 테스트 시나리오를 정의하는 과정에서 예외 상황들을  고려하게 된다는 장점이 있다. 프로그램에서 예외처리의 중요성은 아무리 강조해도 지나치지 않다.

    하지만 단점으로, 코드 생산성이 낮아지고 시간이 오래 걸린다는 단점이 있다. TDD 능숙하지 못한 경우 애자일 방법론을 위배하는 상황이 되기 쉽다.

     

    DevOPs 

    Development, Operation 약자의 합성어로 개발 조직과 운영 조직의 시스템을 통합하는 . 운영의 입장에서는 사용자의 니즈에 발빠르게 대응하는 , 개발의 입장에서는 deploy 속도를 높이는 것이다. 개발  아니라 시스템의 모든 조직을 통합하여 collaboration optimization 지향함. 좁은 의미에서는 Dev, Ops 집중함. 페이스북의 경우 디플로이 주기를 점점 줄여가고 있음.

     

    요약하자면, 디플로이 파이프라인을 Operation 관점, 여러 부서의 관점에서 결합하여 사용자의 요구를 빠르게 적용하는 것이다. 개발과 운영의 관점을 통합하는 하나의 문화이며, 배포 주기를 단축시키며 사용자와의 끊임없는 인터렉션을 추구하는 방식이라고   있다.  역시 TDD 결합하여 시너지를 낸다. 또한 데브옵스는 애자일 프로세스와 함께 설명될 수 밖에 없는 용어이다.

     

    애자일

    개발 프로세스 방법론이다. 전통적인 개발 프로세스는 폭포수 모델과 계획 기반 개발 방식을 따르는 반면, 애자일 프로세스는 이와 반하는 방식이다. 전통적인 개발 프로세스의 경우 차례와 계획이 탄탄하지만, 여러 부작용이 따른다. 다른 공학 분야와는 달리 소프트웨어 분야는 계획이나 차례에 대해 매우 유동적이다. 이로 인해 계획을 타이트하게 잡거나 기한을 못지키는 것에 대한 비난 등의 스트레스가 따른다. 따라서 소프트웨어 개발 프로세스는 불확실성을 포용하고 수반하고 있어야 한다.

     

    애자일 프로세스는 계획형에 반하지만, 철저히 무계획적인 프로세스는 아니다. 타협점을 찾은 것에  가까운 형태다.  내용으로는, 앞을 예측하며 개발하지 않고 문서 지향적이지 않은 프로세스라는 것이 메인이다. 하지만 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어내는 과정을 가진다. 기민하게 좋은것을 빠르고 낭비없이 만들어내는 것이 목표이다. 쉽게 요약하여, 실질적인 코딩을 통한 방법론이며 철저한 계획 없이 일정한 주기로 계속 수정하며 만들어내는 작업을 한다는 .

     

    다형성 

    영어로는 polymerphism. 여러 가지 형태를 가질  있는 능력. , 상속을 통해 기능을 확장하는 개념이다. 여러 가지의 형태를 가질  있는 능력을 말하며, 하나의 클래스가 다른 클래스나 인터페이스를 상속함으로써 여러 가지 형태의 내용을 가질  있기 때문에, 조상 클래스의 타입으로 자손의 인스턴스를 참조할  있다는 것이 핵심이다.  member라는 조상이 child, parent, teacher 로써 마구 활용되는 것을 생각해보면 쉽다. 다형성이 없다면 각각의 타입 케이스를 체크하여 코드를 짜겠지만, 다형성이 있음으로써 member라는 친구 하나만  움직여도 코딩이 원활해지는 .

     

    캡슐화와 은닉화 

    은닉화는 private 으로 변수를 감추고 get/set(접근자함수) 함수로만 접근이 가능하게 하는것. 캡슐화는 정보가 은닉화된 상태에서 외부에서 그것을 사용하는 방법을 설정하는것.  은닉화는 캡슐화의 성질 때문에 발현되는 것이라고 볼수도 있다. 일종의 상위호환 개념이다.

     

    오버로딩 vs 오버라이딩 

    오버라이딩은 상속과 관련있는 개념으로, 상속받은 메서드를 재정의하는 것이다. 때문에 상위의 메서드의 내용으로 불리지 않고, 재정의된 메서드로 실행이 된다. 함수의 원형이나 파라미터 등은 그대로 유지하되, 내용만 달라지는 것이다.

    오버로딩은 상속과 관련이 없는 개념이며, 하나의 메서드를 여러가지 버전으로 만드는 것이다. 메서드의 이름만 동일하고 파라미터와 내용, 리턴 타입이 다른 메서드들을 만드는 것이다.

     

    유효성 검사

    입력 양식에 제대로값이 들어갔는지 확인하는 것을 유효성 검사라고 합니다.

     

    CDN

    CDN은 Content Delivery Network 의 약자로 사용자에게 간편하게 콘텐츠를 제공하는 방식을 말합니다.

    즉, CDN은 세계 곳곳의 서로 다은 여러 데이터 센터에 파일의 복사본들을 배치하여, 동일한 URL 을 유지하면서도 더 빨리 사용자에게 콘텐츠를 제공,전송해 주는 것입니다.

    콘텐츠 전송 네트워크(Content delivery network 또는 content distribution network (CDN))는 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말한다. 

    인터넷 서비스 제공자에 직접 연결되어 데이터를 전송하므로, 콘텐츠 병목을 피할 수 있는 장점이 있다.

     

    렌더링(rendering)

    HTML 코드는 웹 브라우저에서 읽어온 후 화면에 시각적으로 표시하게 되는데, 이 과정을 "렌더링"이라고 합니다.

     

    코드의 응집성

    코드의 본래 목적에 맞도록 성격이 명확한 것을 의미합니다.

    예를 들어 로직을 처리하는 객체는 로직만을 담당하고 화면을 처리하는 객체는 화면만을 담당하는 코드를 응집성이 높은 코드라고 표현할 수 있습니다.

     

    자바스크립트의 스코프

    자바스크립트에서 스코프(scope)는 코드가 실행되는 컨텍스트(변수영역, 실행영역, 유효범위 등의 용어로 알려져 있기도 하다. 실제로는 스코프라는 용어가 가장 많이 사용되고 있다)이며, 전역 스코프, 지역 스코프(함수 스코프), eval 스코프로 구분됩니다.

     

    스코프 체인(Scope Chain)

    함수를 포함한 함수는 서로 연결된 실행 스코프를 만들며 이렇게 연결된 실행 스코프를 스코프 체인이라 부른다.

    그래서 자바스크립트는 변수를 찾을 때 스코프의 계층 구조에 기반한 검색 체인을 거슬러 올라가며 추적하게 된다.

     

    뮤텍스: 한 쓰레드, 프로세스에 의해 소유될 수 있는 Key🔑를 기반으로 한 상호배제기법

     

    세마포어: Signaling mechanism. 현재 공유자원에 접근할 수 있는 쓰레드, 프로세스의 수를 나타내는 값을 두어 상호배제를 달성하는 기법

     

    TPS(초당 트랜잭션 수)

    TPS (Transaction Per Second)는 초당 최대 처리 건수, 즉 초당 교환되는 데이터의 수치를 의미 합니다. 보통 L4에서는 CPS라는 용어를 L7에서는 TPS라는 용어를 사용 합니다.

    일반적으로 클라이언트가 LB의 VIP로 접속하고, 이를 특정 서버로 분산한후 다시 세션을 끊는 과정을 하나의 1 CPS로 봅니다. 어떤 장비에서 200,000 CPS를 지원합니다 라고 한다면 초당 200,000 개의 커넥션을 동시에 처리한다고 보시면 됩니다.

     

    SOA(서비스 지향 아키텍쳐)

    SOA, 기존의 애플리케이션들의 기능들을 비즈니스적인 의미를 가지는 기능 단위로 묶어서 표준화된 호출 인터페이스를 통해서 서비스라는 소프트웨어 컴포넌트 단위로 재 조합한후, 이 서비스들을 서로 조합(Orchestration)하여 업무 기능을 구현한 애플리케이션을 만들어내는 소프트웨어 아키텍쳐이다.

     

    legacy 코드

    레거시 코드라는 말은 더 이상 쓰기 힘들거나 화나게 만드는 코드를 일컫는다.

    기존 개발자가 만들어놓은 똥덩어리같은 코드들

     

    동일 출처 정책(same-origin policy)
    불러온문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 중요한 보안 방식입니다. 이것은 잠재적 악성 문서를 격리하여, 공격 경로를 줄이는데 도움이 됩니다.

     

    CORS

    Cross Origin Resource Sharing의 약자로 도메인 또는 포트가 다른 서버의 자원을 요청하는 매커니즘을 말합니다

    이때 요청을 할때는 cross-origin HTTP 에 의해 요청됩니다.

    하지만 동일 출처 정책(same-origin policy) 때문에 CORS 같은 상황이 발생 하면 외부서버에 요청한 데이터를 브라우저에서 보안목적으로 차단합니다. 그로 인해 정상적으로 데이터를 받을 수 없습니다

     

     

     

    '기타' 카테고리의 다른 글

    [암호화] 암호화에 대하여  (0) 2023.07.09
    web push 전에 쓰던 알람을 받아오는 통신방법  (0) 2020.09.12

    댓글

Designed by Tistory.