본문 바로가기
728x90

분류 전체보기302

[Java] static 활용 [Java] static 활용 intelliJ를 사용하다보면, psvm이라는 단축어를 쓸 때가 있다. 메인 메소드를 만들 때 쓰는 것이다. 메인 메소드는 다음과 같은 코드를 써야 만들 수 있다. public static void main(String[] args){ } public은 그렇다 치고, main은 메소드 이름이고, void는 메소드 타입이고, 그럼 static은 무엇인가? static은 ‘고정된’이라는 의미를 가지고 있다. 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 의미한다. 각각 정적 필드, 정적 메소드라고 부른다. 정적 멤버는 객체에 소속된 멤버가 아니라 클래스에 소속된 멤버이기 때문에 클래스 멤버라고도 한다. 쉽게 이야기하면, 하나의 클래스.. 2022. 7. 10.
[CS] 테스트와 TDD [CS] 테스트와 TDD 개발자의 필수 역량은? 기능을 빠르게 구현하는 것. 기능에 해당하는 테스트를 작성하는 것. 두 가지라고 할 수 있다. 빠르게 구현을 했다 하더라도, 그것이 신뢰가 없는 코드면 개발자는 쓸모 없는 에너지 드링크를 마시며 쓸모 없는 시간을 낭비한 것이라고 봐도 될 듯하다. 내가 쓸모 없는 시간을 보내지 않기 위해 나를 도와주는 것, 구현을 하고 나서 그것이 신뢰가 있는지를 확인해 볼 수 있는 것. 그것은 바로 '테스트 케이스'이다. 테스트란 무엇인가? 개발자 세상에서 테스트란, 소프트웨어 테스트를 말한다. 제품(함수, 특정기능, UI, 성능, API 스펙 등)이 예상하는 대로, 원하는 대로 동작 하는지 확인하는 것이다. 제품 또는 서비스의 품질을 확인하고 소프트웨어의 버그를 찾는 것.. 2022. 7. 9.
[Web] 웹의 진화과정(SSR, CSR, SSG, JAM Stack) [Web] 웹의 진화과정(SSR, CSR, SSG, JAM Stack) 20여년 간 웹 기술은 폭발적으로 성장해온 것 같다. 위와 아래를 비교해보면 우리는 그 변화를 실감할 수 있다. 예전에는 서버에서 모든 문서를 가지고 있고, 구현을 할 것이 있으면 구현을 해서 사용자의 컴퓨터에 그 데이터를 쏴주었다면, 지금의 애플 공식 홈페이지와 같은 것은 서버단에서 구현을 해서 보내주는 것이 아니라, 이런 식으로 브라우저에서 구현을 하라는 코드를 쏴준다. 기술이 많이 발전했기 때문에, 무엇인가 스르륵 움직이는 것도 구현이 가능해진 것이다. 어케했냐를 물어볼 때에는, 과거를 살펴보고 발자취를 들여다보는 것이 좋을 때가 있다. 웹의 발전사가 그러하다. 이번 포스팅에서는 SSR SSG JAM Stack(CSR, SEO,.. 2022. 7. 8.
[CS] 객체지향 디자인패턴 [CS] 객체지향 디자인패턴 Java의 객체 지향을 공부하다 보면, 어떻게 객체 지향 프로그램을 잘 '설계'하고 개발해나갈 것인가를 고민하게 된다. 이 때 우리에게 답을 주는 것이 "객체 지향 디자인패턴"이다. 그림을 그리는 것 같은 디자인도 사람의 영감을 받아 어떤 디자인이나 기호, 캐릭터를 만들어내는 것 같지만, 그림을 그리는 디자인에도 일정한 패턴이 존재한다. 다른 말로 하면, '성공의 공식' 같은 것....! 마찬가지로 소프트웨어 설계 부분에서도 일정한 성공의 공식 패턴이 있다. 프로그램을 설계할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴을 의미한다. 디자인 패턴을 참고하여 개발을 할 경우 개발의 효율성과 유지보수성, 운용성 등의 품질이 높아지며, 프로그램의 최적화에 도움이 된다. 구성.. 2022. 7. 7.
[Web] 웹 서버 : apache, NginX, Tomcat [Web] 웹 서버 : apache, NginX, Tomcat 1. 웹이 우리에게 오기까지 HTML, CSS, JavaScript 등의 파일은 페이지를 구현하기 위해 필요한 문서들이다. 이 문서들은 클라이언트에 있는 것이 아니라, 그 정보를 저장하고 있는 어느 서버에 들어있다. 자사 서비스를 제공하는 네이버의 경우 네이버의 서버실에 그 문서가 들어있을 것이고, 어떤 클라우드에 그 문서를 올려놓았을 경우, 예를 들어 깃허브 저장소를 사용할 경우 깃허브 서버 어딘가에 그 문서가 들어있는 것이다. 그 서버에 있는 문서 파일들은 특정 디렉토리에 넣어두는데, 이 디렉토리를 외부에서 접근 가능하도록 개방해서 서버에 지정된 웹 사이트 주소로 접속하면 이것들을 받아갈 수 있도록 하는 것이 웹 서버이다. 이 구동 방식은.. 2022. 7. 7.
[Web] Content Delivery Network(CDN) [Web] Content Delivery Network(CDN) 1. CDN의 필요성 CDN는 컨텐츠를 서버에서 사용자에게 전송하는 네트워크이다. CDN이 없이도 온라인 서비스들이 동작은 하지만, 서버도 결국 컴퓨터다. 어떤 클라이언트가 사이트에 접속하면, 그 요청에 따라 서버는 컨텐츠를 찾아 보내주는 어떤 '일'을 해야한다. 그것의 트래픽이 엄청나게 증가한다면...? 서버의 용량 또는 성능이 좋지 않고서는 주저 앉고 말 것이다. 그렇다 컴퓨터도 컴퓨터다! 자기 자신의 능력만큼만 일할 수 밖에 없는 기계! 이것의 과부하를 줄여주기 위해서 CDN이 있는 것이다. 현재 사용자가 10명이어도, 잠재적 사용자는 이 순간에도 늘어나고 있다. 우리 나라에서 만들어진 서비스여도, 다른 곳에서 그 서비스를 원할 수도 .. 2022. 7. 6.
728x90