# 함수형 프로그래밍? 함수형 프로그래밍은 객체지향 프로그래밍과 같은 프로그래밍 패러다임 중 하나이다. 1. 불변 (Immutability) - 불변인 함수는 부수 효과(Side Effect)가 없다. - 불변이기에 같은 값을 넣으면 항상 같은 값을 준다는 것을 보장할 수 있다. - 불변이기에 상태를 갖지 않는다. 상태를 갖지 않기에 병렬처리에 유리하다. (교착상태에 빠지지 않는다) - 이렇게 외부 환경에 영향을 받지 않는 함수를 함수형 프로그래밍에서 "순수 함수 (Pure function)" 이라고 불러준다. (+) 왜 교착상태에 빠지지 않나? 불변인 함수는 같은 값을 넣으면 같은 값을 준다는 것을 보장한다고 했다. 또한 상태를 갖지 않는다. 그 얘기인 즉슨 여러 스레드가 동시에 같은 함수를 이용해도 ..
0. Commit Statues API? https://docs.github.com/en/rest/commits/statuses Developer settings > Personal access tokens > Generate new token 클릭 Note > 어떤 토큰인지 대충 적기 Expiration > No expiration Select scopes > admin:org_hook, repo:status 체크 생성 후 나오는 토큰 값은 생성 시점에 단 한번만 볼 수 있으니 따로 메모장에 저장해둘것! (까먹으면 그냥 삭제하고 재생성 하면 되니 걱정할 필요 없음) 2. Jenkins Credential 생성 Jenkins에서 Github plugin 설치 (근데 아마 기본으로 설치되어있었던 것 같음)..
보호되어 있는 글입니다.
문득 궁금해졌다. 왜 inner class로는 static class가 가능한데, outer class에는 static이 오는 것이 불가능할까? * 제일 바깥의 클래스, top-level class를 얘기하는 것 public static class OuterClass { // (X) public static class InnerClass { // (O) } } static을 왜 쓰는지, static의 특징이 무엇인지부터 알아야 한다.. 1. static 키워드가 붙은 멤버(메서드/변수)는 모든 인스턴스가 공유해서 사용하도록 하기 위해 사용되어진다. -> 특정 인스턴스에 종속되어있는 것이 아니다. 2. static 멤버에 접근하기 위해 인스턴스를 생성하지 않아도 된다. - 클래스 이름과 점( . ) 을 이..
보통 실무에서 개발은 혼자 하는 것이 아니라 팀을 이루어서 협업으로 진행되게 된다. 백엔드가 만들어 놓은 API를 프론트엔드가 알아야 하는데 API를 만들고 수정할때마다 카톡으로 공유할 수는 없는 노릇이다. 이런 문제를 해결하기 위해 등장한 것이 Swagger 되겠다. 아이콘부터 뭔가 있어보이게 생겼다. Swagger 공식 홈페이지를 들어가니까 SwaggerHub 으로 연결되길래 Swagger가 없어지고 또 SwaggerHub로 바뀐건가? 싶었는데 그런건 아니었다. 근데 Swagger 홈페이지에 들어가서 공식 API 문서를 찾아보려고 하는데 한참 봐도 Getting Started 항목이 안보이는 것이었다. 검색창에 gradle 쳐보니까 그제서야 자바와 관련된 뭐가 떠서 찾아보니 Swagger API를 지..
# 주의 # 뇌피셜, 개인적인 생각이 상당부분 포함되어 있고 글도 상당히 뒤죽박죽입니다. 또 틀린 부분이 있을지도 모릅니다. 무엇보다 굉장히 장문이라 1줄짜리 정의를 원하는 사람에게 적합하지 않습니다 객체지향(Object Oriented Programming, OOP). 객체를 지향한다. 객체가 뭔가? 그 답은 클래스가 뭔가? 에서부터 출발한다. 클래스는 대개 객체를 정의하는 설계도 또는 틀으로 객체를 생성하는데 사용된다고 흔히 이야기 한다. "붕어빵 틀은 클래스이고 붕어빵 틀로 찍어낸 붕어빵들이 객체" 라는 설명은 객체지향을 공부한 사람이라면 반드시 한번쯤은 들어봤을 설명이다. 여기서 특별히 한 클래스를 통해 생성된 객체를 찝어서 해당 클래스의 인스턴스(Instance)라고 부르기로 한다. 인스턴스랑 ..
URI(Uniform Resource Identifier): 리소스를 식별할 수 있게 해주는 통합 자원 식별자 URL(Uniform Resource Locator): 리소스의 위치를 가리키는 것. - URI가 URL의 상위 개념이다. URL은 어떤 프로토콜을 이용해 어디 경로로 가면 해당 파일을 얻을 수 있다는 경로(자원의 위치)를 나타내는 것이다. 그리고 URI는 URL을 이용해 고유의 자원을 식별할 수 있다. (URI는 자원마다 유일하게 존재해야 한다) 그니까 결국 URI를 표현하는 대표적인 방법 중에 하나가 URL인 것이다. URL은 Locator, 위치를 이용해 자원을 고유하게 식별할 수 있게 만들어 주는 방법이다. 이외에도 URN(Uniform Resource Name). 이름을 이용해 자원을 ..
개인적으로 만들어보고 있는 자바 스프링 프로젝트에서 외부 리소스 파일을 읽어야 할 일이 있어 찾아보는데 정말 내가 잘못된 개념을 알고 있었던 것 같아 적용하는데 골머리를 앓았고, 또 그만큼 엄청난 것을 깨달았다. 상대경로 표현에서 ./ 이 것이 현재 디렉토리를 나타내는 표현이라는 것은 어렵지 않게 알 수 있다. 그런데, 그 현재 디렉토리라는 것이 대체 어디인가? 나는 정말로 모르고 있었다. 그것은 바로.. jar을 실행시킨 위치!! (이는 "현재 작업 디렉토리(Working Directory)"라는 표현과 동일하다.) 스프링 부트의 경우 jar 파일을 만들어서 배포하기 때문에 java -jar 명령어를 이용해 jar을 실행시킨 위치가 바로 현재 디렉토리(작업 디렉토리)의 위치가 되는 것이었다. 근데 배포..