Computer Science (8) 썸네일형 리스트형 [Web / Browser] SSR, CSR의 차이 SSR(Server-side Rendering) SSR은 서버에서 페이지를 렌더링하는 방식으로, Next.js와 PHP, ASP 등이 이에 속합니다. SSR 동작 방식 클라이언트가 특정 페이지를 요청한다. 서버에서는 해당 페이지에 필요한 데이터를 포함한 HTML 파일을 클라이언트에 전달한다. 클라이언트에서는 해당 HTML 파일을 파싱하면서 필요한 정적 리소스(CSS, 이미지 등)와 자바스크립트 파일을 다운로드하며, 페이지를 렌더링한다. 이 때 사용자는 렌더링된 페이지를 볼 수는 있지만 아직 클릭 등의 인터렉션은 할 수 없다. 클라이언트에서 다운로드한 자바스크립트 파일을 실행한다. 페이지 인터렉션이 가능해진다. SSR의 특징 최초 페이지 로딩 시간이 짧음 요청한 페이지에 필요한 리소스만 다운로드하여 페이지.. [CS] 소프트웨어 테스트와 TDD 소프트웨어 테스트 ? 소프트웨어 테스트란 소프트웨어가 의도한대로 동작하는지를 테스트하는 행위입니다. 옛날에는 테스트팀이 별도로 존재하며, 개발자는 테스팅 과정에 큰 관여를 하지 않았지만, 최근에는 개발자가 자동화 할 수 있는 소프트웨어 테스트를 구현하고 실행하는 것이 보편화되고 있습니다. 자동화된 테스트란 사람이 손수 테스트하는 것이 아닌 컴퓨터를 통해서 소프트웨어를 테스트하는 것을 의미합니다. 소프트웨어를 통해서 테스트를 할 경우 아래와 같은 이점을 얻을 수 있습니다. 컴퓨터를 통해서 실행하기에 사람이 실행하는 것보다 빠르다. 정해진 스크립트에 따라 일관성있게 동작하기에 사람이 테스트 할 경우 발생할 수 있는 휴먼에러를 기피할 수 있다. 개발자가 소프트웨어 테스트를 작성할 경우 얻을 수 있는 가장 큰 .. [CS] 아토믹 디자인이란 ? 아토믹 디자인(Atomic Design)은 디자인 요소를 구성하는 원자(Atoms), 분자(Molecules), 유기체(Organisms), 템플릿(Templates), 페이지(Pages)의 다섯 가지 계층으로 구분하고, 이를 조합하여 디자인 시스템을 구축하는 방법론입니다. 이 방법론은 디자인 요소를 단순한 형태로 분해하여 조립함으로써 확장성이 뛰어나고 일관된 디자인 시스템을 만들 수 있습니다. 1. Atoms(원자) 가장 작은 단위인 원자는 디자인 요소의 가장 기본적인 부분을 말합니다. 원자는 웹 인터페이스에서 적용되는 버튼, 입력 필드, 아이콘 등과 같이 다른 디자인 요소로 구성될 수 없는 가장 작은 단위입니다. 2. Molecules(분자) 분자는 원자들이 조합된 디자인 요소 입니다. 예를 들어 검.. [CS] CI/CD(Continuous Integration/Continuous Delivery)란? CI/CD는 Continuous Integration(CI)와 Continuous Delivery/Deployment(CD)를 통합해서 부르는 용어 입니다. CI/CD는 개발 과정에서 필요한 빌드, 테스트, 배포 등의 과정을 자동화합니다. CI/CD 자동화를 통해서 개발자들은 코드를 자동으로 테스트하고 배포할 수 있고 이를 통해 효율적인 작업과, 더 빠르고 더 자주 배포를 할 수 있게됩니다. CI Continuous Integration(CI)은 코드를 지속적으로 통합하는 과정을 의미합니다. 이 과정은 보통 GitHub의 PR을 통해 이루어지며, 코드의 통합은 단순히 코드와 코드를 합치는 것 뿐만 아니라 코드를 테스트하고 유효성을 검증하는 작업도 포함됩니다. 실제로 코드를 통합하는 것이 가장 중요한 부분.. [CS] 서버와 클라우드 컴퓨팅 서버란? 서버의 사전적 의미는 무언가를 제공해주는 사람이나 물건을 의미합니다. 좀 더 나아가서 우리가 일상생활, 그리고 IT 업계에서 말하는 서버는 "무언가를 제공해주는 컴퓨터"를 의미합니다. 우리는 흔히 인터넷으로 특정한 웹사이트나, 리소스에 접근합니다. 하지만 정확히 말하자면, 우리가 접근하는 대상은 웹사이트, 리소스 자체가 아니라 웹사이트와 리소스를 응답해주는 컴퓨터에 접속하는 것 입니다. 서비스를 운영하기 위해서 특정한 컴퓨터를 가동시키고, 해당 컴퓨터에서 특정 프로그램을 실행시켜서 컴퓨터에 네트워크를 통해 접근하면, 특정한 리소스를 응답해주도록 만듭니다. 그리고 인터넷을 통해서 이 컴퓨터를 외부에서 접근 가능하도록 설정합니다. 이러한 동작을 하는 컴퓨터를 우리는 "서버"라고 부릅니다. 서버 운영.. [CS] 개발자의 기본기, 팀으로 일하기 개발자로서 갖춰야할 역량은 무엇이 있을까?, 흔히 업무를 수행하는데 필요한 지식과 기술을 의미하는 "하드 스킬"과 업무 효율성을 극대화 하기 필요한 "소프트 스킬"로 구분지어서 말하곤 합니다. 개발자에게 있어서 기술적인 역량은 "하드 스킬"이라고 할 수 있지만, 그 외에 필요한 개발자의 역량은 무엇이 있을까? 실제 개발자들에게 업무를 할 때 중요한 역량을 물어보면, 오히려 개발 능력 외에 커뮤니케이션 능력, 소통 능력, 협업 능력, 팀워크를 강조하는 경우가 많습니다. 이러한 것들이 개발자로서 갖춰야할 "소프트 스킬"이라고 할 수 있습니다. 개발자에게 협업과 커뮤니케이션이 강조되는 이유는 개발자 혼자서 하나의 프로덕트를 만들 수 없기 때문입니다. 어느정도 규모가 있는 프로젝트들은 수많은 직군들과 협업을 통.. [CS] 소프트웨어 개발방법론(폭포수 모델, 애자일, 데브옵스) 소프트웨어 개발 방법론 ? 소프트웨어를 개발하는 방법에 대한 이론, 소프트웨어 개발과정, 절차, 방법, 산출물, 기법 도구 등을 체계적으로 정리하고 표준화 시킨 것을 말한다. 폭포수 모델 Why ? 1960년대 까지의 "선 코딩 후 수정"의 문제를 해결하기 위해 로이스가 제시한 모델이다. How ? 요구분석 -> 설계 -> 구현 -> 테스트 -> 유지보수 순으로 이루어지고, 하향식 / 순차적인 개발 방식이다. 앞 단계가 완료되어야 다음 단계로 넘어갈 수 있다. Major Rules 앞 단계가 끝나야 다음 단계로 이동 다음 단계로만 이동이 가능 명세(문서)에 기반한 구현 Good Points 단계가 명확하고 이해하기 쉽다. 대규모 프로젝트도 관리하기 쉽다.(모든 일정이 산출되어, 관리 측면에서도 일정 조정.. 1장. 컴퓨터 내부의 언어 체계 보호되어 있는 글입니다. 이전 1 다음