아 이게 뭐임! 34

세션이 뭐임!!

Contents - 세션이 뭐임! - 세션 왜 씀! 세션이 뭐임!!! 세션(Session)이란 사용자가 최초에 서버에 요청한 시점부터 종료할때까지 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술입니다. 쿠키와는 다르게 방문자의 요청에 따른 정보를 방문자 메모리에 저장하는 것이 아닌 웹 서버가 세션 아이디 파일을 만들어 서비스가 돌아가고 있는 서버에 저장합니다. 서버에 저장되기 때문에 사용자 정보가 노출되지 않습니다. (방문자가 웹서버에 접속해 있는 상태를 하나의 단위로 보고 세션이라고 칭한다고도 합니다...) 세션의 원리 - 세션 ID를 서버에서 클라이언트가 자시 웹사이트에 접속시 발급해준다. - 서버에서 클라이언트로 발급해준 세션 ID를 쿠키를 사용해서 저장합..

아 이게 뭐임! 2021.07.23

쿠키가 뭐임!!

Contents - 쿠키란 무엇인가! - 쿠키 종류 쿠키(cookie)란 무엇인가! 사용자가 어떠한 웹사이트를 방문할 경우 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 저장되는 작은 기록 정보 파일을 말합니다. 웹사이트는 쿠키를 통해 접속자의 장치를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장합니다. 일반적으로 쿠키에는 만료일이 있습니다. 예를 들어, 브라우저를 닫는 경우 자동으로 삭제되는 쿠키도 있으며(세션 쿠키), 일부는 수동으로 삭제되기 전까지 남아있는 등 더 오랜기간 동안 컴퓨터에 저장되는 쿠키도 있습니다. 쿠키의 종류 웹사이트에 사용되는 쿠키의 종류는 다음과 같습니다. 세션 쿠키 : 메모리에 저장되어 브라우저 종료시 삭제되는 쿠키입니다 영구 쿠키 : 사..

아 이게 뭐임! 2021.07.22

[객체지향] 의존성이 뭐임!!

프로그래밍에서 말하는 의존성 dependency은 무엇인가...! 일단 프로젝트를 설계한다는 것은 코드를 어떻게 배치할 것인가에 대한 의사결정과정이다. 어떤 클래스에 어떤 코드를 넣을 것이고 어떤 패키지에 어떤 코드를 넣을 것인지 설계 한다고 보면된다. 설계의 초점은 코드들을 변경에 의해 서로 같이 변경되는 것들을 모아두는 것이다. 이러한 변경의 핵심이 바로 의존성이다...! (그렇다...!!) 의존성이라는 것은 무엇인가! (이번엔 진짜임...!) B가 바뀔때 A도 바뀔 수도 있을때 의존성이 있다고 표현한다. 즉, 변경에 의해 영향을 받는 것이 의존성이다. 여기서 A도 바뀔 수 있다고 표현했다. B에 대한 내부구현이 변경되더라도 A에 변경이 없을 수 있다는 뜻이다. (변경에 영향을 받을 수도 있는 가능성..

아 이게 뭐임! 2021.07.21

Globals Are Evil이 뭐임!!

Globals Are Evil이 뭘까.. "Don't use global variables", or "Singletons are evil because they are global" 뭘까... 전역 변수를 쓰지말라고... 싱글톤은 글로벌하기때문에 악하다고... 싱글톤이 뭐야... 어려워.. 그래서 좀 찾아봤다. Globals Are Evil인 이유! 전역 및 정적 개체는 암시적 종속성/커플링을 일으키므로 캡슐화를 깨뜨립니다. 코드의 동작에 대해 추론하기 힘듭니다. 이러한 개체의 동작을 이해하기 위한 논리적 범위가 전체 프로그램으로 확장됩니다. 모의 개체를 만들거나(mock) 다른 코드를 임시로 대치(stub)하기가 어렵습니다. (=테스팅이 힘듦니다.) 전역 개체는 범위를 오염시킵니다. 객체지향적인 프로그..

아 이게 뭐임! 2021.07.16

Gradle이 뭐임!

Contents - Gradle이 뭐임! - Gradle 왜 씀? Gradle이 뭐임! Gradle은 유연성과 성능에 중점을 둔 오픈 소스 빌드 자동화 도구입니다. Groovy나 Kotlin DSL을 사용하여 빌드 스크립트를 작성할 수 있습니다. Gradle의 특징 고성능 — Gradle은 이전 실행의 출력을 재사용하고 변경된 입력만 실행하여 불필요한 작업을 방지합니다. 빌드캐시를 사용하여 이전실행 또는 다른 머신의 작업출력을 재사용 할 수 있습니다. 빌드 스캔 — 빌드 문제를 식별하는 데 사용되는 빌드 실행에 대한 정보를 제공합니다. 빌드의 성능 문제에 관심이 있으며 이러한 스캔은 특히 빌드 문제를 해결하는 데 매우 가치가 있습니다. 강력함 — Gradle은 Android 용 공식 빌드 도구이며 And..

아 이게 뭐임! 2021.07.15

CI/CD가 뭐임!

Contents - CI/CD가 뭐임! - CI/CD 왜 씀? CI/CD가 뭐임! CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법입니다. CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포입니다. 또한 CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제를 해결하기 위한 솔루션입니다. CI/CD의 "CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미합니다. “CI”를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 ..

아 이게 뭐임! 2021.07.14

Lombok이 뭐임!

Contents - Lombok이 뭐임! - Lombok 왜 씀? Lombok이 뭐임! 어노테이션 기반으로 코드를 자동완성 해주는 라이브러리이다. 불필요하게 반복적으로 만드는 코드를 어노테이션을 통해 줄여준다. 다들 Getter, Setter, toString 자동 생성기로 사용하는 것 같다. Lombok 왜 씀? 장점 - 어노테이션 기반의 코드 자동 생성을 통한 생산성 향상 - 반복되는 코드 다이어트를 통한 가독성 및 유지보수성 향상 - Getter, Setter 외에 빌더 패턴이나 로그 생성 등 다양한 방면으로 활용 가능

아 이게 뭐임! 2021.07.13

Log4j가 뭐임!

Contents - Log4j가 뭐임! - Log4j 왜 씀? Log4j가 뭐임! 프로그래머가 다양한 출력 대상에 로그 문을 출력하는 데 도움이 되는 자바기반 로깅 유틸리티 입니다. Log4j 기능 log4j는 속도에 최적화되어 있습니다. log4j는 명명된 로거 계층 구조를 기반으로 설정과 처리를 지원합니다. log4j는 페일 스톱입니다. 그러나 확실히 전달을 보장하기 위해 노력하지만 log4j는 각 로그 문이 대상으로 전달된다는 것을 보장하지 않습니다. log4j는 스레드로부터 안전합니다. log4j는 미리 정의된 기능 집합으로 제한되지 않습니다. 로깅 동작은 구성 파일을 사용하여 런타임에 설정할 수 있습니다. 구성 파일은 속성 파일이거나 XML 형식 일 수 있습니다. log4j는 처음부터 Java ..

아 이게 뭐임! 2021.07.12

Junit이 뭐임!

Contents - Junit이 뭐임! - Junit 왜 씀? Junit이 뭐임! (자바 유닛!) 공식 사이트 왈 : Junit은 JAVA에서 반복 가능한 테스트를 작성하기 위한 간단한 단위 테스트 프레임 워크입니다. 또한 단위 테스트 프레임 워크를 위한 xUnit 아키텍처의 인스턴스입니다. Junit은 컴파일 시 JAR로 링크됩니다. 자바 개발자가 많이 사용하는 테스팅 기반 프레임워크입니다. 특징 - Testing 결과를 단순히 문서로 남기는 것이 아니라 Test Class를 그대로 남겨 추후에 개발자에게 테스트 방법 및 클래스의 History를 넘겨줄 수 있습니다. - @Test 메서드가 호출할 때 마다 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어지게 합니다. - 단정(assert) 메서드로 ..

아 이게 뭐임! 2021.07.11

Jndi가 뭐임!!

Contents - Jndi가 뭐임! - Jndi 어따씀? - Jndi 왜 씀? Jndi가 뭐임! Jndi는 자바 네이밍 / 디렉토리 인터페이스로 필요한 자원을 키/값 쌍으로 저장한 후 필요할 때 키를 이용해 데이터 및 객체를 얻는 API이다. Java Naming and Directory Interface(JNDI)는 Java 소프트웨어 클라이언트가 이름(name)을 이용하여 데이터 및 객체를 찾을 수 있도록 도와주는 디렉토리 서비스에 대한 Java API이다. DB커넥션을 WAS단에서 제어하면서 서버에 하나의 커넥션 풀을 가진다. 공유객체를 사용한다고 이해할 수 있다. Jndi 어따씀? Java 애플리케이션을 외부 디렉토리 서비스에 연결할 때 Java Servlet이 호스팅 웹 컨테이너에서 제공하는 ..

아 이게 뭐임! 2021.07.10