본문 바로가기

분류 전체보기

(166)
[ Java ] Boxed Type 비교 Boxed Type 비교는 무엇으로? 사이드 프로젝트할 때 Boxed Type(Integer, Long) 비교에 대해 선배 개발자 분에게 질문을 했다. 현재 작업에서 == 과 equals 비교 모두 내가 원하는 결과값(True, False)을 주고 있는 상황이었지만 Boxed Type은 Object였기에 equals을 사용해야할 것 같았기 때문이다. == 비교가 True가 나왔던 이유 Boxed Type의 경우 Object이기에 == 비교는 주소값의 동일 유무를 따진다. 하지만 Integer 내부에서는 -128 ~ 127의 값은 Cache를 해뒀다가 해당 값이 들어올 경우 저장해둔 Integer 객체를 반환해준다. 그러기에 -128 ~ 127 사이의 값을 사용할 경우 같의 값의 경우 같은 객체를 가져 ..
[ AWS ] EC2에 Swap Memory 적용 Swap 적용 이유 EC2 프리티어를 사용하여 만든 AWS Linux2 운영체제 t2.micro 인스턴스는 RAM을 1G까지만 제공을 한다. 프로젝트가 무겁거나 다수의 프로젝트를 돌릴 경우 메모리의 부족으로 정상적인 운영이 불가능하다. 우리가 했던 사이드 프로젝트(인생퍼즐)의 경우도 빌드가 안되는 문제가 발생했다. Swap 할당 크기 Swap의 크기는 일반적으로 RAM의 2배를 할당한다. 최대 절전 모드 상황에서는 RAM의 1배 크기를 할당하는 것을 권장하고 있다. 이 이상의 크기를 할당할 경우 속도가 현저히 떨어지는 문제가 생긴다. SwapFaq - Community Help Wiki Introduction This FAQ is aimed at Linux novices. People always won..
[ AWS ] Jenkins과 Elastic beanstalk을 통한 애플리케이션 배포 1. EC2 인스턴스 생성 - Amazon Linux 프리티어 환경 - SSD 30GB [ 프리티어 제한 ] - 보안 그룹으로 제한 [ SSH 접근은 내 IP만 가능하게 적용 ] 2. EC2 SSH 접속 Key-Pair(*.pem) 파일 권한 변경 chmod 400 {파일 이름}.pem pem 파일을 사용해 EC2에 접속 ssh -i "{파일 이름}.pem" {IAM유저}@{접속IP OR 접속URL} 3. Java 및 Jenkins 설치 sudo yum upgrade # jenkins 저장소를 yum에 다운로드 sudo wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --imp..
2022년을 돌아보며... 퇴사 후 대학원 준비... 물거품... 입사했던 이유... 실제 현업... 이 회사를 선택했던 이유 중 가장 큰 것은 NLP 솔루션을 제공하기 때문이었다. 직접 연관된 작업들을 하지 않더라도 기술들을 엿볼 수 있다고 생각했다. 면접 때도 이와 관련된 이야기를 했었다. 1년 7개월 정도의 시간 동안 하루에 3~4시간 자면서 작업한 경우가 많았으며 주말이 없는 경우도 많았다. 하지만 문서작업, 크롤링, 웹사이트 제작 작업, 기존에 만들어진 자바 프로그램의 유지보수 작업만 계속 하게 되었다. 퇴사하게된 이유 회사에서 일 하고 있는 어느 날 갑자기 가슴이 너무 답답했다. 잠도 많이 못자고 주말이 없는 경우가 허다 했던 1년 6개월 간 목표로 했던 분야에 대해서 1도 보지 못했다는 마음이 정점에 달했던 것 같다...
[ Java Spring ] List 정렬하기 Comparable 인터페이스 Comparable은 compareTo 메서드 하나만 가지고 있는 인터페이스이다. 기본적으로 들어온 파라미터보다 작은 경우 음수, 같은 경우 0, 큰 경우 양수의 값을 리턴한다. 필요에 따라 인터페이스를 상속 후 재정의해서 사용할 수 있다. public interface Comparable { public int compareTo(T o); } 실제 예시 Story 클래스가 Comparable 인터페이스를 상속하고 compareTo를 멤버변수 view의 크기에 따라 정렬하도록 재정의 했다. Class Story implements Comparable { String content; int view; @Override public int compareTo(Story o) { ..
[ Java Spring ] CRUD Repository vs JPA Repository CRUD Repository CRUD Repository는 Repository 인터페이스를 확장하며, save(), saveAll(), findAll() 등 CRUD에 관련된 메서드를 제공한다. Paging과 Sorting 기능은 따로 제공하지 않는다. 상속 관계 Repository -> CrudRepository JPA Repository JPA Repository는 PagingAndSortingRepository 인터페이스를 확장하며, PagingAndSortingRepository는 CRUD Repository 인터페이스를 확장하는 형태를 띠고 있다. 기본적인 CRUD 관련된 기능뿐 아니라 Paging, Sorting 기능을 추가적으로 제공한다. 또한 saveAllAndFlush(), delet..
DB 외부 접속 포트 포워딩 문제 상황 윈도우 환경에서 MySQL 설치 및 환경 설정을 완료한 상태였다. 유저, 데이터베이스 생성과 아이피 유저 부여를 했다. 포트를 열어주기 위해 방화벽 규칙을 추가했다. 마지막으로 공유기 포트 포워딩 설정을 해줬지만 외부에서 DB에 접속이 안 되는 문제가 발생했다. 이유 외부 IP가 내가 설정한 공유기로 바로 연결이 되지 않는다는 것을 발견했다. 외부 IP와 공유기 사이에 모뎀이 존재했으며, 모뎀에서 공유기에게 새로운 로컬 IP를 부여하고 있었다. 외부IP(XXX.XXX.XXX) -> 모뎀(192.33.44.1) -> 공유기(192.33.44.25 | 192.33.55.1) -> 컴퓨터(192.33.55.12) 해결 방법 모뎀과 공유기를 Bridge 형식으로 변경하는 것과 포트 포워딩을 모뎀과 공유기..
[ 등산로 정보 웹 ] 시작하며.... 보호되어 있는 글입니다.