🍏 최근 포스트
-
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권한을 받..
🍎 인기 포스트
-
[IntelliJ] 코드 변경할 때마다 자동 재시작 하는 방법 총동원 모음집
** Intellij 버전: 2020.3.1 기준 ** Mac Big Sur 11.0.1 순서대로 진행하면서 적용되는 데까지 시도해보시면 됩니다. Springboot로 관리자 페이지를 제작하면서 html 변경 사항이나 코드 변경 사항이 있을 때마다 재시작 하는 것이 매우 불편해서 설정을 다 찾아보았습니다. 저는 참고로 6단계까지 가서야 적용이 되었습니다. 1️⃣ build.gradle 파일 developmentOnly("org.springframework.boot:spring-boot-devtools") 추가해주세요. dependencies { implementation('org.springframework.boot:spring-boot-starter-web') implementation('org.spr..
2021.01.10 02:17 -
[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 -
[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로부터 프로그램을 수행하는데 필요한 메..
2021.08.03 18:23 -
Springboot Gradle + AWS EC2 + Jenkins + Docker로 배포까지(5) : 슬랙으로 Jenkins 알림 받기
이제 Jenkins와 github을 연동하고, springboot를 빌드했으며, 이를 docker 이미지로 만들어 hub에 push하는 과정까지 모두 마쳤습니다. 💪 이렇게 Jenkins에게 개발자가 해야하는 일을 나눠주고 나니, 일을 잘하고 있는지, 에러는 나지 않는지 불안해졌습니다. 수시로 들어가서 확인할 수도 없는 노릇이니 Jenkins가 일을 잘 하고 있는지 알림을 받아 보겠습니다. 1️⃣ 슬랙에 Jenkins CI 설치 앱에서 Jenkins CI를 검색해서 jenkins 알림을 받을 채널을 설정합니다. 앱 추가를 누르면, Jenkins에 슬랙 알림을 추가하기 위한 단계들이 상세하게 설명되어있습니다. 본 페이지에서는 토큰을 복사해서 잘 보관해두면 됩니다. 2️⃣ 슬랙 플러그인 다운로드, 슬랙 토큰..
2021.04.30 17:06