본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ

IT기술/CS(ComputerScience)31

OSS/BSS 이게 무엇인가? - BSS(business support system, 업무 지원 시스템) 통신사가 고객이 가입할 때 고객으로 부터 고객 정보와 요금을 지급받고, 이런 정보를 처리하여 OSS로 넘겨주는 것이 BSS다.즉, 통신서비스 제공자가 고객에게 서비스를 제공하기 위해 사용하는 시스템, 고객을 상대하는 시스템이다. 고객의 지불, 고객정보 등록 시스템이 있으며, 안정적인 처리가 중요하다. 그러므로 ACID(원자성, 일관성, 독립성, 지속성)을 만족하기 위해 RDB를 사용하며,  대용량 데이터, 빅데이터를 사용하기 위해 NoSql을 사용한다.- OSS(Operation Support System, 운용 지원 시스템)통신 서비스 제공자가 자체 네트워크를 관리하기 위해 사용하는 시스템 (네트워크 재고, 네트워크 구성, 장애.. 2024. 5. 13.
콜백 함수란 무엇인가 프로그래밍에서 콜백(callback) 또는 콜백 함수(callback function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다.일반적으로 콜백수신 코드로 콜백 코드(함수)를 전달할 때는 콜백 함수의 포인터 (핸들), 서브루틴 또는 람다함수의 형태로 넘겨준다. 콜백수신 코드는 실행하는 동안에 넘겨받은 콜백 코드를 필요에 따라 호출하고 다른 작업을 실행하는 경우도 있다. 다른 방식으로는 콜백수신 코드는 넘겨받은 콜백 함수를 '핸들러'로서 등록하고, 콜백수신 함수의 동작 중 어떠한 반응의 일부로서 나중에 호출할 때 사용할 수도 있다 (비동기 콜백).콜백은 폴리모피즘과 제네릭프로그래밍의 .. 2024. 5. 9.
[CS] java에서 String이 불변 객체인 이유 자바에서 String 문자열은 불변 객체입니다. String으로 선언한 변수가 변하지 않는 다는 뜻에서 불변이 붙은것은 아닙니다. String a = "num1"; a = "num2"; "num1"이라는 String 객체가 만들어지고 이를 a가 참조하는 식으로 내부에서 과정이 이루어집니다. a="num1"을 선언하며 "num1"이 상수풀에 없으면 num1을 새로 만들고 a로 참조하도록 하는 것입니다. 다만 a ="num2" 를 수행하며 값이 변경되는 게 아닌 "num2"라는 새로운 String 객체를 만들고 타입 a에 참조시키는 것입니다. 왜 이런 구조를 띠는걸까요? String 객체는 heap 메모리가 아닌 상수풀에 등록되고 참조를 반환합니다. 이렇게 설계된 이유는 String은 상당히 자주쓰여서 상수.. 2024. 4. 15.
[CS] SOP CORS 웹 개발에서 알아두면 좋은 내용 예전에는 출처(프로토콜, 호스트명, 포트)가 다르더라도 ajax 통신을 수행할 때 요청과 응답이 문제없이 가능했습니다. 하지만 이러한 방식에는 보안에 취약하다는 문제가 생길 수 있습니다. Cross-Site Scripting (XSS) 1. 사용자의 쿠키 정보를 가져오는 자바스크립트 코드(악성코드)를 포함한 게시글을 작성한다. 2. 어떤 사용자가 로그인하면 쿠키에 그 정보가 저장됨 3. 해커가 작성해둔 게시글을 사용자가 클릭했을 때 악성코드가 작동 4. 쿠키에 저장된 사용자 정보가 해커의 웹사이트에 전송됨 Cross-site request forgery (CSRF) - 사이트 간 요청 위조 1. 사용자가 보안이 취약한 서비스에 로그인 한다. 2. 사용자 정보가 쿠키에 저장된다. 3. 해커가 만든 피싱 사.. 2024. 4. 11.
[CS] 동기와 비동기의 차이, 멀티스레드와 비동기의 차이 동시성 이슈를 해결하는 과정에서 개념을 정리해볼 필요가 있어 정리하게 되었습니다. 동기와 비동기, 이게 무슨 이야기인지 정리해보려 합니다. synchronize (동기화) 란 무엇인가?? 현재 상태를 적용하는 것을 말하는 동기화, 내가 무언가 조치를 취했다면, 해당 내용이 반영되어야 합니다. 이를 위해 동기화를 말하는 것이며, 동시성을 이야기도 합니다. 동기화를 지원 이유는 공유자원을 다루면서 정합성이 깨지는 것을 방지하기 위해 사용하기도 합니다. 그럼 동기는 무엇인가요? 위의 동기화 와는 다르게, 프로그래밍에서 작업을 처리하는 방식에 대해 정할 때, 동기적으로 처리 또는 비동기적으로 처리 라고 이야기 할 수 있습니다. 동기화와 이름이 비슷하지만 구분해야 하는 개념이기에 먼저 적어봤습니다. 동기(Sync.. 2024. 3. 21.
웹 서버와 WAS(Web Application Server)의 차이점이 뭘까? 웹 서버와 WAS(Web Application Server)를 같이 연동해서 사용한 적이 있습니다. 성능의 향상을 위해 라는 이유로 둘을 동시에 연동해서 사용했는데 이번에 이 관련해서 정리해보려 합니다. 웹 서버(web server)는 HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램을 말합니다. 주로 정적 컨텐츠를 클라이언트로 전달하고, 클라이언트로부터 콘텐츠를 전달받거나 처리합니다. 동적 컨테츠가 필요할 때, WAS에 요청을 전달하여 처리한 결과를 클라이언트에게 전달합니다. 웹 애플리케이션 서버(Web Application Server, WAS)는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공합니다. 주로 동.. 2024. 2. 8.
웹후크 란 무엇인가? 자격증을 공부하다가 웹후크 라는 단어를 접하게 되었다. 이게 무엇인가? 웹 후크는 한 컴퓨터 시스템이 다른 컴퓨터 시스템에 이벤트가 발생했음을 알리는 데 일반적으로 사용되는 것을 말한다. 웹 후크는 HTTP, JSON 같은 표준 웹 기술을 사용하며, API로도 가능하다. Tableau같은 경우는 후크를 사용하여 이벤트 알림을 구독할 수 있으며. 그러면 관련 이벤트가 트리거될 때 HTTP POST 알림이 선택한 URL에 전송된다. GIT 이나 여러 다른 사이트에서도 웹후크 기능을 제공하니 이런게 있다는 것 정도만 알아두자. https://www.tableau.com/ko-kr/developer/tools/webhook-api https://docs.github.com/ko/webhooks/using-web.. 2023. 12. 12.
NAT Gateway 개요 NAT Gateway는 클라우드 플랫폼 내부에 있는 여러 대의 비공인 IP를 가진 고객의 서버가 공인 IP 주소를 가진 외부 서버와 통신할 수 있도록 연결하는 NAT 서비스입니다. 비공인 IP 주소를 가진 다수의 서버가 하나의 NAT Gateway를 공유하거나, 여러 개의 NAT Gateway를 만들고 서버 그룹별로 각각의 NAT Gateway를 사용할 수도 있습니다. 고객이 사전에 등록한 외부의 공인 IP 주소를 가진 호스트에만 접속할 수 있도록 설정해 보안을 강화할 수 있습니다. 또한 Auto Scaling 서비스와 연결하여 새로 증설되는 서버가 자동으로 NAT Gateway를 이용하도록 설정할 수 있습니다. AWS 에선 NAT Gateway를 통해 전송하고 요청하는 것은 가능하나, NAT Gatew.. 2023. 11. 24.
RTO와 RPO 뭐냐 이게? RPO(Recovery Point Objective , 복구 시점 목표) RTO(Recovery Time Objective , 복구 시간 목표) 시스템을 구축하거나 업그레이드 할 때 장애나 재난이 발생했거나, 시스템에 치명적인 이상이 생겼을 경우 대응을 위해 복구를 진행할 것이다. 이때 사용되는 용어인데, RPO(복구시점목표) 즉 어느 시점으로 복구할 것인가? 와 PTO(복구시간목표) 언제까지 복구가 되는가? 를 줄여서 이야기 하는 것이다. 이는 고가용성을 갖추기 위해 신경써야 하는 부분으로 이런 용어가 있다는 정도만 알면 된다. 2023. 11. 24.
Stateful | Stateless 서비스 Stateful | Stateless 서비스의 개념을 알아보자. 1. Stateful 서비스 Client의 정보나 세션 정보를 server에 저장하는 서비스를 통틀어 Stateful 서비스 라고 한다. TCP 기반 통신이 대표적인 예시 2. Stateless 서비스 Client의 정보와 Server의 정보가 완전히 독립적인 서비스를 통틀어 Stateless 서비스 라고 한다. Server는 단순히 요청이 오면 응답을 보내는 역할만 수행하며, client가 능동적으로 요청해야 한다. UDP와 HTTP 같은게 대표적인 예시 3. Stateless 서비스가 주목받는 이유 Statelss 구조가 Stateful 구조 대비 갖는 몇가지 장점들로 인해 최근의 웹서비스 구조는 모두 Stateless 구조 기반을 따르.. 2023. 11. 24.
애자일 개발 프로세스 애자일 소프트웨어 개발(Agile software development) 혹은 애자일 개발 프로세스 소프트웨어 엔지니어링에 대한 개념적인 얼개로, 프로젝트의 생명주기동안 반복적인 개발을 촉진한다. 최근에는 애자일 게임 보급 등의 여파로 소프트웨어 엔지니어링 뿐 아니라 다양한 전문 분야에서 실용주의적 사고를 가진 사람들이 애자일 방법론을 적용하려는 시도를 하고 있다. 종류 애자일 개발 프로세스로 불리는 개발 방법론에는 다음과 같은 것들이 있다. 익스트림 프로그래밍(Extreme Programming, XP) - 애자일 개발 프로세스의 대표자로 애자일 개발 프로세스의 보급에 큰 역할을 하였다. 이 방법은 고객과 함께 2주 정도의 반복개발을 하고, 테스트우선 개발(TDD)을 특징으로 하는 명시적인 기술과 방법.. 2023. 8. 10.
소프트웨어 공학의 모든 것 - 유지보수 출처 : https://mini-noriter.tistory.com/31 포인트1. 유지보수 작업과 개발 작업의 차이는 무엇인가? 포인트2. 유지보수 작업 과정은 무엇인가? 포인트3. 형상관리 작업이란 무엇이며 그 절차와 방법은 무엇인가? 포인트4. 역공학과 리엔지니어링이란 무엇이며 어떻게 하는가? 포인트5. 유지보수 작업 방법과 지원 도구에는 어떤 것이 있는가? 유지보수 - 개발 후에 이루어지는 소프트웨어의 변경 작업 유지보수 단계는 소프트웨어가 가장 유용하게 활용되는 기간 소프트웨어는 환경과 비즈니스 요구에 따라 진화한다 11-1. 유지보수의 소개 - 레거시 시스템(Legacy System) 수십 년 전에 구축되었지만 지금까지 사용되고 있는 소프트웨어 시스템 - 레거시 시스템을 대체하지(=소멸하지) .. 2023. 8. 7.