2021/08 35

람다식 (Lambda Expression)

람다식 (Lambda Expression) ​ Lambda는 2014년 3월 18일에 발표한 java 8에서 추가된 대표적인 기능입니다. 자바에 대한 함수형 언어의 기능 요구가 끊임없이 있어 왔고, 객체지향언어인 자바가 함수형 언어의 기능까지 갖추게 하는 일은 쉽지 않았을 테지만 그 어려운 일을 똑똑한 개발자들이 해준 덕분에 우리는 이 좋은 기능을 사용 할 수 있게 되었습니다. ​ 람다식이란? 람다는 간단하게 말해서 메서드를 하나의 식으로 표현 한 것입니다. 람다식은 함수를 간략하면서도 명확한 식으로 포현할 수 있게 해줍니다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없기 때문에 람다식을 "익명함수" 라고 부릅니다. 객체지향 언어인 자바에서는 method라는 용어를 사용하는데요, 특정 클래스..

Programming/Java 2021.08.29 (1)

Vue.js 사용 하기 4 ) PostgreSQL로 간단 게시판 작성 해보기 - 조회 및 수정 기능 추가

Vue.js 사용 하기 4 ) PostgreSQL로 간단 게시판 작성 해보기 - 조회 및 수정 기능 추가 ​ Vue.js 사용 하기 3) postgreSQL 게시판에서 Modal 이용하기 에 이어지는 글 입니다. ​ 마지막으로 Vue를 활용해 게시판을 조금 더 "사용할 수 있음" 에 가깝게 수정 해 보았습니다. ​ 일단 개별 글의 "조회" 기능을 추가 하였습니다. 이에 따라 게시판 목록 에서는 삭제 버튼이 사라졌습니다. 각 글의 제목을 누르면 개별 글을 조회 할 수 있도록 하였습니다. ​ 수정 버튼을 누르면 게시글 수정이 가능합니다. 게시글 수정은 게시글 작성 모달을 그대로 재활용하며 상황에 따라 다르게 작동하도록 하여 코드의 양을 줄이고 변경에 용이하도록 하였습니다. ​ 게시글 작성을 보면 아시겠지만 ..

티스토리 이미지 클릭시 원본 사이즈 모달 구현하기

티스토리 이미지 클릭시 원본 사이즈 모달 구현하기 ​ 티스토리는 기본적으로 lightbox를 지원합니다. 그런데 이게 지원하는 정도가 아니라 아에 해당 css와 js 파일을 뺄 수 없을 정도로 못 박아 두었습니다. 뭐 사용하기에만 편하면 된다 생각하는데, 문제는 제가 티스토리를 순수 markdown으로 작성하고, 첨부하는 이미지들도 Github에 올리고 링크를 연결하는 방식으로 올리다 보니, Tistory의 기본 lightbox가 작동하지 않았습니다. 그래서 저는 티스토리 블로그에서 이미지를 클릭 할 때 이미지를 크게 볼 수 있게끔 스스로 구현해야 했는데, 쉽게 될 줄 알았는데 꽤나 헤맸습니다. 처음에는 어차피 강제적으로 들어 가 있으니 lightbox를 사용 해 보려고 했는데 생각처럼 잘 되지 않았습니..

Development/HTML ⁄ CSS 2021.08.26 (4)

SpringBoot 프로젝트에서 HTML, CSS 등 정적자원 Hot Reload 시키기 - IntelliJ IDEA 인텔리제이

SpringBoot 프로젝트에서 HTML, CSS 등 정적자원 Hot Reload 시키기 - IntelliJ IDEA 인텔리제이 ​ 단순한 html 파일만 변경 하는데도 Eclipse 쓸때는 별 문제 없이 바로 바로 새로고침이 되었던 것 같은데 인텔리제이를 사용하려니 서버를 재시작 하지 않으면 변경사항이 적용이 안되더라구요. 인터넷을 검색 해도 옛날 정보라서 검색해서 체크하라던 내용도 없고, 하란 대로 해도 안되서 여기 저기 다 검색 하다가 해결을 해서 정보를 나누려고 포스팅 합니다. ​ 1. Preferences 에서 Compirer에 Build Project automatically 를 체크해줍니다. ​ 구글에서 검색 했을 때에는 registry에 가서 compiler.automake.allow.wh..

Sourcetree 에서 잘못된 비밀번호로 저장소 접근 안될때 해결방법

Sourcetree 에서 잘못된 비밀번호로 저장소 접근 안될때 해결방법 ​ 소스트리에서는 한번 입력된 비밀번호가 잘못 되어도 절대 다시 입력하라고 하지 않고, 계속해서 비밀번호가 틀렸다는 메시지만 주구 장창 띄웁니다. 심지어 8월 13일 부로 Github에서는 password authentication을 공식적으로 제거하고는 personal access token 만을 사용하도록 정책을 변경 했는데요. 이미 오래전 부터 경고해왔기 때문에 갑작스러운 일은 아닙니다. ​ 하지만 Sourcetree에서는 인증에 실패하였을때 새로 비밀번호를 입력하게끔 해주지 않기 때문에 대책이 필요합니다. 예전에도 팀원 분중 한분이 소스트리에 Gitub 비밀번호를 잘못 입력했다가 로그인 되지 않아서 지웠는데도 계속해서 비밀번호..

Development/Git 2021.08.24 (5)

MacOS ) HEIC 에서 JPG로 변환하는 매크로 등록하기

MacOS ) HEIC 에서 JPG로 변환하는 매크로 등록하기 맥에서는 기본으로 HEIC 라는 사진 포맷을 사용합니다. 이게 한국에서 다수의 웹 사이트는 지원을 하지 않는 경우가 매우 많다보니 불편한 경우가 많이 생기는데요, 하나 하나 사진을 바꾸기도 참 불편합니다. Mac에서 preview 등으로 간편하게 하는 방법이 있지만 아이에 매크로로 등록을 해놓고 5분 투자로 앞으로 5년 이상 편하게 사용하게끔 한번 함께 등록 해 보셨으면 합니다. ​ Automator를 실행 합니다. Automator는 기본으로 Mac에 모두 깔려있습니다. Applications 쪽에 들어가서 찾아보시거나 Spotlight 를 켜서 automator를 검색해보세요 ​ 하단의 new Document를 눌러 새로운 문서를 생성 합..

IT Computer/Mac 2021.08.24 (2)

java ) Fail-Safe Iterator vs Fail-Fast Iterator

java ) Fail-Safe Iterator vs Fail-Fast Iterator ​ 1 소개 이번 글에서는 Fail-fast와 Fail-Safe Iterator의 개념에 대해 알아보겠습니다. 영어로 된 문서를 읽으며 공부하다보니 의미에 맞게 번역하는 과정에서 제가 전문 번역가가 아니라 다소 표현이 딱딱한 느낌이 날 수도 있습니다. 간단한 차이를 말씀드리고 시작하자면, Fail-Fast 시스템에서는 오류가 발생하는 즉시 작업을 중단하고 오류를 알립니다. 또한 진행중이던 전체 작업을 모두 중단시킵니다. 반면에 Fail-Safe 시스템에서는 문제가 생겨도 작업을 중단 하지 않습니다. 해당 시스템에서는 오류 발생을 가능한 피하려고 합니다. ​ ​ 2 Fail-Fast Iterators java의 컬렉션은 ..

Programming/Java 2021.08.23 (6)

IntelliJ) 인텔리제이 세로줄 없애기

IntelliJ 인텔리제이 세로줄 없애기 인텔리제이를 처음 사용하는데 의문의 세로줄이 있습니다. 꽤나 거슬려서 제거하는 방법을 검색하는데 잘 나오지 않아서 Stack Overflow를 검색해서 방법을 알아내어 공유합니다. 1. Preferences 에 들어갑니다. 2. Editor -> Apperance 로 들어갑니다. 3. Show hard wrap and visual guides (configured in Code style options) 의 체크를 제거합니다. 4. OK 를 누르면 이제 세로줄이 깔끔하게 사라져 있습니다. 이상입니다.

MacOS ) IntelliJ IDEA 처음 사용해보기

MacOS ) IntelliJ IDEA 처음 사용해보기 ​ https://www.jetbrains.com/ko-kr/lp/language-pack/ ​ IntelliJ IDEA 한국어 언어 팩 출시 기념 30% 할인을 진행하고 있습니다. 8월 끝날 때 까지 할인을 한다고 하는데 1년차 구독료가 굉장히 비싸기 때문에 $149의 30% 면 무려 $44.7 을 절약 할 수 있습니다. 한화로는 5만원이 넘네요. ​ 예전부터 IntelliJ IDEA를 사용 해 보고 싶었는데, 여러 가지 중 가장 큰 이유는 M1 맥북에서의 Eclipse가 참 불안정 하다는 점 이었습니다. ​ 툭하면 오류나고, 버그나고. 뭐만 하면 빌드가 안되는데 건들지도 않았기 때문에 그게 또 Project Clean을 하면 새로 빌드하면서 문제..

IT Computer/Mac 2021.08.21

docker container에서 localhost 접속하기 host.docker.internal

docker에서 컨테이너들이 실행 중인 서버를 바라 봐야 할 경우가 있습니다. Docker Compose를 이용해 여러개의 도커 컨테이너를 실행해서 하나의 어플리케이션을 담당한다고 했을때, 하나의 네트워크로 연결해 사용하게 되는데요. 정작 컨테이너에서 로컬 서버에는 어떻게 접근해야 할까요? 제 맥북에서 사용중인 Docker에는 컨테이너가 아직 PostgreSQL 하나밖에 없어서, 이 컨테이너를 이용해서 시도 해 보겠습니다. ​ 제 컨테이너 같이 DB 서버라면 사실 필요할 일은 없지만, Apache나 NginX 같은 웹 서버의 경우는 흔하게 필요한 상황이 발생 할 수 있겠습니다. ​ 일단 해당 Container로 접속 해 보겠습니다. GUI환경이라면 위에 보이는 CLI 버튼으로 쉽게 접속 해 터미널을 띄울..

Development/DevOps 2021.08.21

Apple Silicon m1 맥북에서 Oracle Database 사용하기

Apple Silicon m1 맥북에서 Oracle Database 사용하기 ​ 정말 많은 분들이 m1 맥북을 구매하셨다가 (특히 국비수업 듣는분들) 오라클 데이터베이스를 사용하지 못해 좌절을 하시는 것 같습니다. 한가지 나쁜 소식과 좋은 소식으로 해당 글을 시작하겠습니다. ​ 나쁜소식 M1 맥북에서는 native 에서도, docker를 사용해도 2021.08.21 현재 오라클 데이터베이스를 m1 맥북에서 사용할 방법은 전혀 없습니다. 정말 많은 방법을 시도 해 보았고 해외 포럼도 많이 찾아봤지만, ARM 64 칩셋으로 된 CPU에 Mac OS 사용이라는 특이한 상황에 오라클의 폐쇄성까지 겹쳐져 지금 어떤 방법으로도 오라클을 설치해 실행 할 수 없으며 제 예상이 맞다면 향후 적어도 1년동안은 쉽게 해결될..

IT Computer/Mac 2021.08.21

Mac) Oracle Cloud FreeTier 이용해 웹 어플리케이션 배포하기 6) 오라클 전자지갑 사용해 프로젝트와 연결하기

Mac) Oracle Cloud FreeTier 이용해 웹 어플리케이션 배포하기 6) 오라클 전자지갑 사용해 프로젝트와 연결하기 4) 무료 데이터 베이스 만들기 및 데이터 이관하기 에서 만든 무료 Oracle Cloud FreeTier 의 데이터베이스를 프로젝트와 연결 해 보겠습니다. 정말 많은 분들이 무료 데이터 베이스를 만드는데 관심이 있었지만 난이도가 난이도다 보니 실패한 분들이 꽤 많은 것 같았습니다. 어렵게 어렵게 성공을 했는데 도저히 프로젝트와는 어떻게 연결하는지 어려움을 겪는 분들이 상당히 많아서 이메일도 많이 받았는데요. 저도 아직 시도해본적 없는 내용을 무책임하게 관련 reference만 던져드리는 것도 죄송스럽게 생각되어서 주말을 이용해서 직접 한번 해 보았습니다. 막상 해보니 생각보다..

Development/Cloud 2021.08.21 (15)

Javascript로 페이지 리다이렉트 하는 방법. location.href vs location.replace

Javascript로 페이지 리다이렉트 하는 방법. location.href vs location.replace javascript를 사용하며 다른 페이지로 이동 하는 방법은 몇 가지가 있습니다. 일단 추천하지는 않지만 jQuery를 사용한다면 $(location).attr('href', 'https://shanepark.tistory.com'); 같은 방법을 쓸 수 있겠죠? ​ 하지만 보통 가장 많이 썼던 방법은 window.location.href = 'https://shanepark.tistory.com'; 였을 겁니다. 대다수의 상황에서 window.location.href 는 별 문제 없이 작동하지만, 해당 리다이렉트 방법을 사용하면 안되는 경우도 있을..

Eclipse 2021-06 에서 lombok 사용시 Unable to make protected... 에러 해결

Eclipse 2021-06 에서 lombok 사용시 Unable to make protected... 에러 해결 얼마전 부터 Eclipse 2021-06 을 설치해서 사용 해보고 있었습니다. Lombok을 사용중이던 프로젝트를 불러오려고 이클립에서 lombok.jar 를 install 했는데요 그 때부터 문제가 발생했습니다. Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed..

반응형