본문 바로가기

Programming120

[Software] 소프트웨어란 목차 소프트웨어란 소프트웨어 공학 소프트웨어 공학 환경 소프트웨어의 신뢰도 참고 2023년 3월 세계 시가총액순위 안에는 소프트웨어 관련 회사가 대부분을 차지하고 있습니다. 이제 소프트웨어는 사업체의 의사결정에 과학(공학)적인 문제해결을 할 수 있는 도구 (key)입니다. 소프트웨어의 정의 소프트웨어는 좁은 의미에서 프로그램과 관련 데이터들의 집합을 말하고, 포괄적 의미로 관련된 문서들까지 포함합니다. 현대 사업체들의 의사결정, 문제해결의 필수 도구 (key)로서 모든 산업의 기반기술이 되고 있습니다. 소프트웨어 분류방법 기능에 따른 분류 시스템 소프트웨어 : 컴퓨터를 동작시키기위한 목적 (운영체제, 드라이버, 컴파일러, RDBMS 등) 응용 소프트웨어 : 사용자의 실제 업무를 수행 (웹 브라우저, 게임.. 2023. 3. 8.
JWT (JSON Web Token) 도입기 - JWT는 만능해결사인가 목차 JWT 토큰을 도입한 계기 JWT의 문제점 앞으로의 개선방향 실무에서 JWT를 도입했던 일화를 소개합니다. JWT의 개념, 소스 구현 등은 구글링 하면 예제들과 함께 자세히 나오니 해당 레퍼런스들을 참고하시기 바랍니다. JWT 토큰을 도입한 계기 별도의 세션저장소 (ex. Redis)를 두지 않은 경우 세션은 WAS에 부하를 줍니다. 일반적으로 이 문제에 직면한 뒤 세션 저장소를 별도 구축하거나 JWT 도입을 고민하는데요. 그러나 제가 실질적으로 실무에서 JWT를 도입하게 된 계기는 이원화된 서버의 세션 정합성 문제였습니다. 제가 맡은 레거시는 서버 부하 분산을 위해 was를 2대 이상으로 세팅하였으나, 실제 세션 데이터는 클러스터 혹은 별도의 세션 저장소 구축은 되어있지 않았습니다. 따라서 제가 .. 2023. 3. 2.
[JS, WEB] bfcache와 웹 브라우저 최적화 (뒤로 / 앞으로 캐시) 목차 bfcache를 직면, bfcache가 뭔가? javascript에서 bfcache 다루기 bfcache 최적화 bfcache의 문제점 (성능과 분석) 참고 웹페이지를 로드하면 server reqeust를 하지 않고 캐싱해 두고 빠르게 띄우는 경우가 있습니다. (특히 뒤로 가기 할 때) 개발자 입장에서 이는 굉장히 난처할 수 있습니다. 웹 캐시는 브라우저 최적화와도 밀접하게 연관되기 때문에 이를 이해하고 활용할 방안이 있는지 정리해 봅니다. html (js) 프로젝트를 개선 중이었습니다. 서버 스프링 단에 interceptor를 새롭게 만드는 작업을 진행했고 interceptor가 제대로 매핑되었다고 생각한 순간! 브라우저 뒤로 가기로 접근하면 데이터 request를 하지 않고, 캐싱된 데이터를 보.. 2023. 2. 28.
[SPRING] Bean의 정의와 IoC 컨테이너 (부제 : IoC는 DI가 아니에요) Unfortunately, there aren't clear answers to the simple question of what a Spring bean really is..... * 출처 : https://www.baeldung.com/spring-bean 그렇다고 합니다.... 이렇다 보니 구글링 해서 나오는 bean, IoC, DI에 대한 포스팅들은 해석이 약간씩 다릅니다. 그래서 이번만큼은 최대한 스프링 공식 문서 (docs.spring.io)와 스프링 공식문서만큼 많이 보는 (절망적 이게도) baeldung에 의존합니다. 아래 공식문서를 붙여드립니다. https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#be.. 2023. 2. 14.
[UNIX System] 웹 서버 (web server)와 아파치 설정 목차 웹서버 아파치 설정 웹서버 (Web Server) 웹서버란 클라이언트의 HTTP 요청을 받아 웹 페이지 내용을 클라이언트에게 응답 (제공)하는 서버 프로그램입니다. 클라이언트는 사용자, 브라우저입니다. 이때 클라이언트가 서버와 네트워크를 통해 연결하는데, 연결하는 전용 프로토콜이 HTTP 프로토콜입니다. 2022.09.14 - [Programming/WAS] - HTTP 프로토콜 초간단 요약 HTTP 프로토콜 초간단 요약 목차 HTTP 프로토콜이란? HTTP 요청 메시지 구조 HTTP 응답 메시지 구조 HTTP 프로토콜 (PROTOCOL)이란? 웹 서버 (아파치 등)가 클라이언트 (브라우저, 크롬 등)와 통시하는 규약입니다. TCP 프로토콜에 기 kghworks.tistory.com 많이 사용하는 .. 2023. 1. 30.
[JAVA] Thread 1편 - 멀티스레드에서의 공유자원 이번 포스팅에서는 JAVA (JVM)이 어떤 식으로 스레드를 구현하도록 설계해 두었는지 알아봅니다. 또한 멀티스레드 환경에서 공유자원으로 연산할 때 발생할 문제점과 해소방안을 확인합니다. 2편에서는 해소방안에 대해 더 깊게 고민해 봅니다. * 스레드의 개념에 대해서는 아래 포스팅에서 간략히 소개했으니 먼저 참고 바랍니다. 2022.02.25 - [Programming/운영체제] - 프로세스 (Process)와 스레드 (Thread) 프로세스 (Process) 목표 프로세스의 개념을 이해한다. 스레드의 등장 배경과 그 장점을 파악한다. 스케줄링 단계와 정책을 이해한다. 목차 프로세스 (Process) 스레드 (Thread) 스케줄링(scheduling) 참고 프로세스 (Process) kghworks.ti.. 2023. 1. 19.