개발 일지/etc 8

Queue 자료구조에서 add와 offer의 차이

Java에서 Queue 인터페이스를 사용하는 도중 add와 offer는 같은 동작을 하는 것 같은데, 왜 분리되어 있는 걸까? 라는 생각이 들었다. 보통 Queue는 LinkedList 자료구조를 활용하기 때문에 LinkedList 에서는 어떻게 구현하고 있는지를 확인해봤다. ..? 소스 코드로 구현 원리를 파악할 수는 있지만 offer도 결국 add를 사용하는 것처럼 보였다. add와 offer가 분리된 명확한 이유를 모르겠어서 구글링의 단계로 돌입했다. add와 offer의 차이 우선 'add'와 'offer' 모두 요소를 컬렉션에 추가하는 데 사용된다. 그럼 차이는 뭘까? 'Collection' 인터페이스에서 'add' 메서드의 반환 값은 항상 'true'이다. 따라서 Queue 인터페이스를 구현한..

개발 일지/etc 2023.07.31

[AWS] Amazon Relational Database Service Provisioned Storage 비용

AWS로 서버를 설정하고 배포한 후 청구서에 비용이 조금씩 올라가기 시작했다. $0.131 per GB-month of provisioned GP3 storage running MySQL 이 녀석이 문제였다. 지금은 $0.00 per GB-month of provisioned GP2 storage under monthly free tier 가 적용되어 있지만 처음에는 적용되지 않았었다. 큰 금액은 아니었지만 분명 모든 설정을 freetier로 적용한 것 같은데 왜 요금이 계속 청구되는 거지? 하는 궁금증에 수많은 블로그를 찾아봤었다. 프리티어에 관한 많은 내용들이 있었지만 요금이 청구되는 해당 녀석에 대해서는 프리티어 설정에 대한 특별한 내용이 없었고 AWS에 직접 문의해 봤다. 결론부터 말하면, RDS..

개발 일지/etc 2023.05.17

Port 8080 was already in use

작업을 하다가 인텔리제이가 갑자기 닫혀버리거나 서버를 종료하지 못한 경우에 다시 서버를 실행시키면 다음과 같은 에러가 발생한다. 자주 발생하는 경우라 블로그에 정리해두고 보려고 한다. 해결 방법 1. 관리자 권한으로 cmd 실행 2. netstat -p tcp -ano 를 입력하면 아래와 같이 8080 port가 사용중이라고 나온다. 3. 위의 PID를 참고하여 taskkill /f /pid {PID} 값을 입력하면 된다. 나는 PID가 16068이라서 taskkill /f /pid 16068 을 입력했다. 이렇게 하면 해당 프로세스가 종료되므로, 다시 포트 번호를 톰캣 서버를 통해 정상적으로 사용할 수 있다. 2023.05.19 추가 EC2 환경에서 백그라운드로 서버를 실행시켰을 때 종료 방법(bash..

개발 일지/etc 2023.03.27

정규 표현식(정규식)

정규 표현식(regular expression, regexp)은 프로그래밍에서 문자열을 다룰 때, 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 주로 프로그래밍 언어에서 문자열의 검색과 치환을 위한 용도로 사용된다. 일반적인 조건문으로는 복잡한 코드도 정규 표현식을 이용하면 간단하게 표현할 수 있지만 정규 표현식을 숙지하고 있지 않다면 이해하기 힘들다. 다음은 정규 표현식의 용어들이다. ^ : 문자열의 시작을 의미한다. $ : 문자열의 끝을 의미한다. * : * 앞에 평가할 대상이 0개 이상인지를 평가한다. \s : 공백 문자열을 의미한다. \S : 공백 문자열이 아닌 나머지 문자열을 의미한다. ? : ? 앞에 평가할 대상이 0개 또는 1개인지를 의미한다. + : + 앞에 평가..

개발 일지/etc 2023.02.14

[CSS] CSS란?

CSS(Cascading Style Sheets)는 HTML과 함께 웹을 구성하는 기본 프로그래밍 요소이다. HTML이 텍스트나 이미지, 표와 같은 구성 요소를 웹 문서에 넣어 틀을 잡는 것이라면 CSS는 색상이나 크기, 이미지 크기나 배치 등 웹 문서의 디자인 요소를 담당한다. CSS는 웹 페이지 스타일 및 레이아웃을 정의하는 스타일시트 언어로 자바스크립트와 연계해 콘텐츠의 내용이나 디자인을 동적으로 처리할 경우에도 유용하게 사용된다. HTML로 만들어진 문서에 CSS를 접목시키면 가독성이 좋아보이는 효과를 볼 수 있고 사용자가 문서를 잘 이해할 수 있도록 도와준다. CSS는 작성이 쉽다는 장점이 있지만, 요소가 많아지고 이에 따라 코드가 늘어나기 시작하면 유지보수에 어려움이 많아진다. 코드가 무수히 ..

개발 일지/etc 2022.12.16

[HTML] HTML이란?

HTML(Hyper Text Markup Language)이란 웹 페이지 표시를 위해 개발된 지배적인 마크업 언어다. 또한, HTML은 제목, 단락, 목록 등과 같은 본문을 위한 구조적 의미를 나타내는 것뿐만 아니라 링크, 인용과 그 밖의 항목으로 구조적 문서를 만들 수 있는 방법을 제공한다. 간단하게 말하자면 웹 페이지의 내용과 뼈대를 정해진 규칙대로 기술하는 언어이고 집을 짓는 일에 비유한다면, HTML은 집의 전체적인 구조를 담당한다고 할 수 있다. 마크업 (Markup) HTML 마크업은 HTML 요소(Elements)와 그들의 속성(Attributes)과 문자 기반 데이터 형태와 문자 참조와 엔티티 참조를 포함하는 몇 가지 핵심 구성 요소로 이루어져 있다. HTML 요소 (Elements)란 H..

개발 일지/etc 2022.12.16

메타인지

특정한 지식을 습득하는 것이 아닌 독립적인 사고와 판단을 할 수 있는 일반적인 능력을 개발하는 것이 항상 우선되어야 한다. "The development of general ability for independent thinking and judgement should always be placed foremost, not the acquisition of special knowledge" - 알버트 아인슈타인(Albert Einstein) 메타인지란 1970년대 발달심리학자인 존 플라벨(J. H. Flavell)에 의해 만들어진 용어로 '자신의 생각에 대해 판단하는 능력'을 말한다. '자기가 생각한 답이 맞는지', '이 언어를 배우기가 내게 어려울지' 등의 질문에 답할 때에도 사용되며, 자신의 정신 상..

개발 일지/etc 2022.12.15

성장형 마인드셋

생각하는 대로 살지 않으면 사는 대로 생각하게 된다. "one much live the way one thinks or end up thinking the way one has lived" - 폴 부르제(Paul Bourget) 긍정심리학 분야의 세계적인 석학이자 스탠퍼드 대학 심리학 교수인 캐롤 드웩(Carol S. Dweck)은 자신의 저명한 저서 을 통해 인간은 자기 존재에 대해 크게 두 가지의 믿음을 가질 수 있다고 설명한다. 탁월한 인재들의 특징은 인생의 고비를 성공으로 바꾸는 특별한 능력이 있으며 이들의 특징은 바로 '인내심'과 '회복력'이다. 또 이들은 '자신의 강점과 약점을 파악하는 특별한 재능을 지녔다'라고 한다. 우리가 가진 생각과 믿음은 종종 우리의 말과 행동으로 표현되고, 우리 삶에..

개발 일지/etc 2022.12.06