본문 바로가기
반응형

자바15

maven multi binding 문제 시 해결 회사에서 옛날에 만든 걸 리팩토링해보려다가 maven 옮겨오는 것부터 문제가 생겼다. spring 키려고 하니 자꾸 맨앞에 아래와 같은 오류가 생겼는데 해석하자면 " slf4j binding 하려고 보니 동일한 모듈이 여러 개라서 그중에 멀 쓸지 모르겠다. 내 맘대로 하나 쓴다? " 에러 메세지 이긴 한데 동작하는데 문제없지 않을까 싶다가도 글씨가 빨간색이니 이번 기회에 고치는 방법 알고가자 싶어서 정리하는 겸 적어본다. 우선 pom.xml 파일을 보면 dependency로 추가한 것 중 꼬인 게 분명 있다. 하지만 어떤 패키지가 뭘 가지고 있는지 어떻게 아냐? maven 설정이니 maven을 설치해준다. ( maven 설치 - ref. https://benggri.tistory.com/23) cmd창에.. 2023. 10. 12.
spring boot login 중복 로그인 방지 저번 spring boot의 기본 로그인을 구현했다. spring boot 로그인 (+spring security, mysql) spring boot 로그인 (+spring security, mysql) springSecurity 사용 pom.xml 에 아래와 같이 security 설정 추가 org.springframework.boot spring-boot-starter-security {프로젝트이름}Application.java 가 존재하는 폴더에 config folder 생성 + securityConfig.java 생성 demo.config.Se hoonzi-text.tistory.com 이전 로그인 코드에 중복 로그인 방지를 추가해보자. 중복 로그인 방지 로직을 넣기 위해 기본 로그인 페이지가 아닌.. 2023. 5. 28.
나는 인내심이 적고 적어.. (progress bar) tl;dr System.out.print(”…. \r”) 사용 시 해당 줄에서 지워지고 다시 써짐 애니메이션으로 보여지는건 직접 구현하거나, 잘 만들어진 거(예를 들어) 가져다가 쓰세요! intellij로 자바 실행 시 오래 걸리는 작업의 경우, 콘솔창(intellij)에서 print 찍어 놓은 게 없으면 하염없이 기다려야 한다... 이 경우 얼마나 진행됐는지 알고 싶을 때는 로딩바 (progress bar)라고 불리는 게 필요한데 오늘은 직접 한번 코드로 구현해 보자. 일단 오늘의 글을 도와줄 코드 public class mainClass { public static void main(String[] args) { mainClass mainClass = new mainClass(); int n = 69.. 2023. 3. 15.
싱글턴 패턴 (Singleton pattern) 간단 정리 싱글턴 패턴 정리 목차 1. 싱글턴 패턴이 뭔지? 2. 왜 쓰나요? 언제 쓰나요? 3. 어떤 문제가 있나요? 4. 코드로 살펴보자 5. 해당 singleton 패턴을 사용하는 java library 소개 6. 참고 싱글턴 패턴이 뭔지? 싱글턴 패턴은 객체 지향 디자인 패턴 중 하나로, 어떤 클래스의 인스턴스가 오직 하나임을 보장하는 패턴이다. 이 패턴은 전역 변수를 사용하여 클래스의 인스턴스를 저장하고, 해당 클래스의 인스턴스를 생성하는 메소드를 제공, 이렇게 하면 언제 어디서든지 해당 클래스의 인스턴스에 접근할 수 있다. 왜 쓰나요? 언제 쓰나요? 왜 쓰나요? 전역 변수를 사용하지 않고도 하나의 인스턴스만 생성 다수의 스레드에서 동시에 접근하더라도 안전하게 사용 인스턴스를 생성하는 비용이 큰 경우, 프.. 2023. 3. 14.
어댑터 패턴(Adapter pattern) 간단 정리 내가 이해한 어댑터 패턴 간단 정리 (tl;dr) 사용하고자 하는 모듈과 실제 모듈 간의 호환이 되지 않을 때 사용하는 디자인 패턴 중 하나이다. 어댑터 클래스를 구현해 기존 모듈을 상속, 혹은 주입받아 기존 모듈의 동작 & 호환되어야 하는 동작을 adapt 시킨다. 아래는 내가 다른 정리글들을 보면서 나눈 구분들 상황에 따른 구분 먼저 가정이 필요하다. [사용해야 하는 모듈은 내가 개발하는 곳 이외에도 사용처가 많아 수정이 불가능 하다!!] 기존 모듈 존재 but 모듈 수정 불가 so, 새로운 로직이 필요할 때 기존 모듈 존재 x (아직 미완성) but 모듈 수정 불가 so, 새로운 로직이 필요할 때 *여기서 새로운 로직이란? 확장이 필요 (할 수도) 할 때-> new 함수 생성 기존 모듈의 기능이 전.. 2023. 3. 10.
프록시 패턴(Proxy pattern) 간단 정리 프록시 패턴 (내가 이해한) 실제 클래스를 대체하는 대리자 클래스를 구성 실제 클래스를 변경하지 않고도, 클래스의 동작 수행 이전 혹은 이후에 무언가를 실행 가능 고로 동작은 똑같이 한다는 걸 보장, 허나 동작의 흐름?을 제어 실제 동작 객체가 수행하기전 까진 초기화 x, 동작시 초기화 수행 가능 (ex. 지연된 초기화) 무거운 객체를 항상 초기화 하는게 아니라 가벼운 프록시 객체만 로딩 추후 실제 동작 필요시 그때서야, 무거운 객체를 로딩 실제 동작 객체의 동작전 대리자 객체만의 동작을 추가 수행 (ex. 로그 남기기) 실제 동작 객체는 변경하지 않고, 프록시의 객체 동작전, 후 로그 생성 및 변경 가능 실제 동작 객체의 동작 후, 결과를 보관 및 사용자의 재요청시 보관된 결과를 반환 (ex. 캐시) .. 2023. 3. 9.
전략 패턴(strategy pattern) 간단 정리 유튜브로 출퇴근하면서 간간히 개발 관련 얘기들을 듣고는 하는데 언젠가 봐야지 했던 디자인패턴 강의가 알고리즘에 떠서 (강의하시는 분 말로는 디자인 패턴의 꽃이라 더라…) 코드 한번 쳐보고~ 정리하고자 글을 적습니다. 제목에 써있듯이 간단 정리이기에 자세한 패턴 이야기들은 참고 링크의 글을 읽어주길 바랍니다~ 내가 이해한 전략 패턴 (strategy pattern) 특정 객체의 행위의 변경이 잦을때, 해당 클래스의 행위 함수 구현부를 바꾸는 게 아니라 “행위 클래스”를 구현해서 주입! 어떤 행위인지, 행위 상세 내용에 대해서는 주체 클래스는 알지 못함 (ex. Thread.run(), Sort(New Comparator { … }) ) 행위의 변경이 필요 시 해당 행위 클래스를 찾아가 행위만 수정 행위의 .. 2023. 3. 7.
antMatcher? 가 머지 보통 남들이 만들어 놓은 것 중에 자주 쓰이는 것들은 이름부터 잘 지어놔서 함수나 클래스명을 보면 딱 알 수 있는데 그게 아닌 놈을 만났다. antMatcher… 이게 뭔지 궁금해져서 찾아본 결과를 적어놓는다. (대충… 대충…) tl;dr 사용자 요청에 대해 인증, 인가 설정 시 해당 설정에 대한 검사를 수행할 url 경로(regex)를 적는 부분 .antMatchers("/status","/resources/**","/join","/auth/**","/error").permitAll() .antMatchers("/admin**").hasAnyAuthority("ADMIN") ant 인 이유는 Apache Ant project에서 따왔다고 한다. url 매칭 시 Ant Pattern을 이용하기 때문. 아.. 2023. 2. 21.
한글 파일(.hwpx) 에서 내용만 추출하고 싶을때 java로 hwp는 hwplib를 통해서 읽는데, hwpx를 읽으려고 하니 오류가 난다. 단순히 안에 있는 텍스트 내용만 가져오면 되는데 안 되는 게 답답하던 차ㅡ 구글에서 찾아보니 [아주 쉬운 뉴스 Q&A] 아래아한글 새 기본문서 'hwpx'가 뭐죠? | 아주경제 [아주 쉬운 뉴스 Q&A] 아래아한글 새 기본문서 'hwpx'가 뭐죠? | 아주경제 얼마 전 국민 워드프로그램 아래아한글의 기본문서 형식이 바뀌었습니다. 최신 프로그램 업데이트를 적용하면, 한글 문서를 작성하고 저장할 때 기존 hwp가 아니라 hwpx라는 형식의 파일이 만들 www.ajunews.com 위 링크를 참고하면 hwpx는 zip format으로 확장자를 변경하면 폴더 내 계층구조로 내용이 적혀있다는 것이다. zip으로 변경한 뒤, .. 2023. 1. 13.
반응형