🍏 최근 포스트
-
JPA 구조는 어떻게 되어있고 spring-data-jpa와는 뭐가 다를까?
JPA는 Java Persistence API로, 자바 객체와 DB를 매핑하기 위한 인터페이스를 제공하는 자바 ORM 기술의 표준 명세입니다. SQL Mapper ORM sql과 객체를 매핑 DB와 객체를 매핑 mybatis, jdbcTemplate 등 hibernate, EclipseLink 등 개인적으로 mybatis를 썼을 때는 복잡한 sql문이 필요할 때는 비교적 편리하게 작성할 수 있다는 장점이 있었습니다. 하지만 DB를 중간에 변경하기 어렵고, 기획 변경사항이 생길 때마다 sql문을 일일이 수정해줘야하는 반복 작업을 수행해야 했습니다. 그래서 CRUD를 하루종일 짜고 있는 개발에서 벗어나 비즈니스 로직에 집중하기 위해 ORM 에 관심을 가지게 되었습니다. ❓ORM이란 객체는 객체대로, DB는 ..
-
[Java/kotlin] None of the following functions can be called with the arguments supplied 에러 해결
Java로 개발중이던 소셜로그인 코드를 코틀린으로 마이그레이션 하는 과정에서 만난 에러를 공유합니다. WebSecurityConfiguration에서 접근허용 배열인 AUTH_WHITELIST를 antMatchers에 설정하려고 할 때, None of the following functions can be called with the arguments supplied. 에러를 만나게 되었습니다. 해당 에러는 제공된 인수로 다음 함수를 호출할 수 없다는 에러인데, 이미 존재하는 배열인 AUTH_WHITELIST를 vararg(가변인자) 함수로 넘기려고 할 때 스프레드 연산자인 *를 붙여주지 않아서 발생하는 문제였습니다. 기존 코드 private static final String[] AUTH_WHITELI..
-
[Java] JVM 구조와 메모리 영역 - Method, Heap, Stack Area
JVM 동작 과정 JVM은 자바 가상 머신으로, 자바 바이트 코드를 해석하고 실행하는 역할을 합니다. 자바 코드는 JVM을 통해 실행되므로 Window, Linux와 같은 다른 OS에서도 동일하게 실행할 수 있다는 장점이 있습니다. 구체적으로 메모리 영역을 공부하기 전에 JVM이 자바 소스코드를 어떻게 OS에서 실행하는지 과정을 살펴봅시다. 1. 자바 소스코드인 .java 파일을 컴파일러가 자바 바이트 코드인 .class로 변환합니다. 2. .class 코드를 JVM의 클래스 로더에게 보냅니다. 3. 클래스 토더는 JVM 런타임 데이터 영역으로 로딩하여 JVM의 메모리에 올립니다. 모든 자바 프로그램은 JVM을 통해 실행됩니다. 일단 프로그램이 실행되면 JVM은 OS로부터 프로그램을 수행하는데 필요한 메..
-
Git Repository not found 에러 해결 with 인텔리제이 단축키
⚠️ 에러 상황 프로젝트 organization에 초대받고, 리드 개발자 분께서 private 레포지토리를 하나 생성하여 초기 세팅을 한 상태에서 git clone을 했습니다. 그리고 한참 로컬에서 작업하다 Intellij 단축키로 git push를 하려고 하니 해당 에러가 나면서 젯브레인을 통해 깃헙 로그인을 하라는 창만 자꾸 나타났습니다. remote: Repository not found.fatal: repository 'https://github.com/organization /repositoryName.git/' not found 뒤늦게 레포지토리에서 제 권한이 read였다는 걸 알고, 권한 수정을 부탁드려서 admin으로 바꿨지만 여전히 같은 에러를 내고 있었습니다. 레포의 admin권한을 받..
🍎 인기 포스트
-
Git Repository not found 에러 해결 with 인텔리제이 단축키
⚠️ 에러 상황 프로젝트 organization에 초대받고, 리드 개발자 분께서 private 레포지토리를 하나 생성하여 초기 세팅을 한 상태에서 git clone을 했습니다. 그리고 한참 로컬에서 작업하다 Intellij 단축키로 git push를 하려고 하니 해당 에러가 나면서 젯브레인을 통해 깃헙 로그인을 하라는 창만 자꾸 나타났습니다. remote: Repository not found.fatal: repository 'https://github.com/organization /repositoryName.git/' not found 뒤늦게 레포지토리에서 제 권한이 read였다는 걸 알고, 권한 수정을 부탁드려서 admin으로 바꿨지만 여전히 같은 에러를 내고 있었습니다. 레포의 admin권한을 받..
2021.07.16 16:18 -
[AWS] 과금 없이 안전하게 aws 쓰는 법
aws는 서버 공부를 하면서 ec2나 rds 등을 사용해야 할 때가 많은데, 프리티어 계정에 대해 자세히 모르고 이용하다보면 과금이 많이 나는 경우가 있습니다. 예를 들어 모르고 rds를 기본으로 만들었다가 한 달 조금 넘겨서 120만원이 과금이 난 사람도 있는데..학생이라 몰랐고 큰 돈을 내기 어렵다고 여러번 (빌며) 문의했지만 너무 늦게 연락을 줬다는 이유로 결국 60만원을 낸 케이스였습니다. 그 이후로 철저하게 aws에 대해 공부하고 과금 관리를 하고 있다고 합니다.😊 본 포스팅에서는 ec2와 rds 포스팅을 따로 할 것이기 때문에 기본적인 과금 방지 설정에 대해서만 다루겠습니다. 1️⃣ Budgets 설정하기 먼저 내 계정 대시보드에 들어가보면 budgets라는 항목이 있는데요, budgets는 ..
2020.01.26 21:48 -
[Nodejs/Mysql] 게시글 페이징하기(1) : LIMIT을 사용한 Offset-based Pagination 구현하기
❓ Pagination (페이지네이션) 백엔드에서 클라이언트에게 값을 전달할 때, 일정 기준으로 분할하여 전달하는 것을 의미합니다. 웹에서 게시글을 1페이지, 2페이지로 넘기는 것과 '더보기' 버튼으로 무한 스크롤을 할 수 있는 것 모두 페이지네이션을 통해 구현된 것입니다. 페이지네이션의 방식에는 크게 2가지가 있는데, 하나는 offset 방식이고 하나는 cursor 방식입니다. 1. 오프셋 기반 페이지네이션(offset pagination) limit, offset 쿼리를 사용하여 구분함. 주로 웹 페이지에서 > 이런 방식의 네비게이션을 쓸 때 사용 2. 커서 기반 페이지네이션(cursor pagination) 가장 최근 idx를 기준으로 구분함. 주로 무한 스크롤이나 더보기를 구현할 때 사용(SNS)..
2021.01.08 15:00 -
[KoNLPy] 은전한닢(mecab) 사용자 사전 추가하기
📚 mecab 사용자 사전 기본적으로 mecab은 제공하는 사전 외에 , 사용자가 직접 입력해서 형태소를 입력해서 단어를 인식할 수 있도록 하는 '사용자 사전'을 제공합니다. 기존 사전에 다양한 단어들이 있지만, 생각보다 원하는 대로 검색이 안되는 경우가 있는데, 이 때 사용자 사전을 사용하면 mecab을 더 다양하게 활용할 수 있습니다. ❗️목표: 문장 내에 있는 '의약품명'을 NNP 태그로 추출할 수 있었으면 좋겠다. 먼저 mecab-ko-dic 폴더로 들어가서 ls로 해당 디렉토리에 있는 폴더를 확인합니다. 여기서 user-dic 디렉토리로 들어가봅시다. cd mecab-ko-dic-2.1.1-20180720 ls cd user-dic 위에 EC, NNP, NNG.csv 등은 mecab-ko-dic..
2020.08.12 19:53