Windows11 해야할 것 1. 웹 검색 끄기2. 마우스 우클릭 한번에3. 5. 웹 브라우저 장단점웹 브라우저확장프로그램h265 영상기타Chrome광고차단 o지원메인으로 적당Edge광고차단 o음성만 지원 Vivaldi광고차단 o지원서브로 적당네이버 웨일광고차단 o 일부 안됨지원서브로 적당Firefox광고차단 o, chromium확장프로그램 안됨미지원개발자 도구에서 '다시 보내기' 가능Brave광고차단 o지원치지직 보기 불가 운영체제/Windows 2025.06.28
SQLite 1. 설치더보기1.1. 윈도우 설치https://sqlite.org/download.html에 접속해 번들을 다운받아 압축을 푼다. 1.1.1. gui설치 (선택)https://sqlitebrowser.org/dl/에 접속해 installer를 받아 설치하면 된다.1.2. linux 설치ㅁ2. 실행 SQLite는 따로 설치가 필요한 데이터베이스가 아니다. 그냥 sqlite3.exe를 실행시키면 된다.3. 데이터베이스 파일 접속 or 생성 데이터베이스 (Database) 2025.06.15
spring Querydsl 1. 설정1.1. build.gradle설정은 스프링 버전에 따라 다르다. 이 글에서는 3.4.5버전에서의 설정이다.dependencies { // QueryDsl implementation 'com.querydsl:querydsl-jpa:5.1.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:5.1.0:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api"}build.gradle에 위 설정을 추가한다. com.querydsl의 두가지를 추가하면 되는데, ja.. Java 2025.05.22
JPA (Java Persistence API) jpa는 java의 orm(object relational mapping)기술이다.application.properties 설정데이터베이스 스키마 자동생성 spring.jpa.hibernate.ddl-auto= create : 기존 테이블 삭제 후 다시 생성 create-drop : create와 같으나 종료 시점에 테이블 drop update : 변경분만 반영(운영db에는 사용x) validate : 엔티티와 테이블이 정상 매핑되었는지만 확인 none : 사용하지 않음 개발 초기: create 또는 update 테스트 서버: update 또는 validate 스테이징과 운영 서버: validate 또는 none #h2 데이터베이스spring.datasource.driver-class-name=org.h.. Java 2025.05.15
Optional<T> optional은 java 8에 추가된 문법으로, null값일 수 있는 변수를 감싸주는 클래스이다.java 프로그래밍을 하다보면 NullPointerException이 굉장히 많이 발생하는데 해당 예외를 잘 처리하기 위해 만들어졌다고 한다. 반환메소드설명static Optionalof(T value)null값이 아닌 값을 Optional로 감싸 반환static OptionalofNullable(T value)null일 수 있는 값을 Optional로 감싸 반환static Optionalempty()빈 Optional을 반환booleanisEmpty()값이 없다면 true, 있다면 falsebooleanisPresent()값이 있으면 true, 없다면 falsevoidifPresent(Consumer.. Java 2025.05.10
이름짓기 규약 (Naming Convention) 이름짓기 규약이 왜 있는가? 그냥 내 마음대로 이름을 지으면 되지 않는가? 그런 생각일 수도 있다.혼자 만드는 토이프로젝트의 변수명이라면 내 마음대로 case를 선택할 수 있다.그러나 이름짓기는 전 세계적으로 관례가 있다. 그리고 프로젝트를 같이 한다면 미리 규약을 정해놓아, 팀원이 모두 해당 규약을 따라야 한다.1. 카멜 표기법 (Camel case)camelCase각 단어의 첫 문자는 대문자로 적되, 맨 앞 단어만 소문자로 적는 표기법이다. - Java의 지역변수, 인스턴스 변수, 메소드 2. 파스칼 표기법 (Pascal case)PascalCase각 단어의 첫 문자를 대문자로 적는 표기법이다. - Java의 Class 또는 Interface- Python과 Ruby의 Class 3. 스네이크 표기법.. 이것저것 2025.04.24
spring 예외(Exception) 처리 사용자가 필수 파라미터를 빼고 요청을 보냄. 서버 내에서 데이터베이스 조회 오류. 그 외 예상치 못한 오류. 등등 예외가 발생하면 어떻게 처리해야 하는가? 기본적으로 스프링이 적절한 예외 페이지를 보여준다. 그러나 좀 더 자세하게 오류 정보를 전달하고시다면 따로 설정해주어야 한다.예외가 발생하였을 때, 표현 방법에 따라 2가지로 나눌 수 있다. 웹에서 요청한 경우와 api를 요청한 경우이다. 각각 html, json으로 오류 정보를 응답한다.1. html로 오류 표시 (웹 클라이언트 요청)스프링에서는 resources/templates/error또는 resources/static/error디렉토리에 에러코드.html을 만들면 된다. resources/templates/error/500.html r.. Java 2025.04.17
spring 검증(validation, bean validation) 웹 서비스를 만들다보면 회원가입, 로그인, 회원정보수정, 상품등록, 상품수정 등 많은 폼 입력을 만든다. 이때, 각 input에 대한 검증을 해야한다. 이 검증을 spring에서 쉽게 할 수 있게 도와준다.예를 들어, 그래픽카드를 등록하고 수정하는 기능이 있는 웹을 만들 것이다. 등록과 수정의 요구사항이 다르다고 가정한다.그래픽카드 도메인은 다음과 같다.@Getter @Setterpublic class GraphicsCard { private Long id; private GraphicsCardGroup group; private String name; private Long quantity; private Long price;}id는 Repository가 자동으로 1부터 지정.. Java 2025.04.11
spring 로그인 세션과 인터셉터 웹 기능에 로그인은 매우 자주 사용되는 기능이다. spring에서는 이 로그인 기능을 세션을 사용해 어떤 멤버가 로그인하였는지, 인터셉터를 사용하여 로그인 안된(세션이 없는) 사용자는 서비스를 거부할 수 있다. 1. 세션세션 생성은 HttpSession session을 사용하면 되고, 세션 조회는 @SessionAttribute(name="attributeName", required = false)을 사용하면 된다. application.properties에 다음 내용을 추가해 세션을 조정할 수 있다.# 세션 움직임 없을때 타임아웃 시간. 기본 30분이다.server.servlet.session.timeout=60m# 세션을 쿠키로만 받는다. 아니면 url로 전송될 때도 있다.server.servlet.. Java 2025.04.03
오토핫키 ImagePut (비활성 이미지서치) 오토핫키 1 버전에서는 비활성 이미지 서치를 할 때, Gdip_All.ahk, Gdip_ImageSearch.ahk 를 사용해 서치했다. 그러나 2 버전에서는 호환도 잘 되지 않고, 더 좋은 라이브러리가 있어 사용할 필요가 없다. 그 라이브러리는 바로 ImagePut이다.개발자 github에 가서 ImagePut.ahk 를 다운받으면 된다: https://github.com/iseahound/ImagePut 이 그림판이 화면에서 보이지 않을 때, 위 도형 이미지를 찾을 것이다. 결과로 다음과 같이 작동한다. 코드: #include ImagePut.ahkMinMax := WinGetMinMax("제목 없음 - 그림판")if (MinMax = -1) { WinRestore("제목 없음 - 그림판".. AHK(오토핫키) 2025.03.23
오토핫키 Gui 1. gui 만들기문법: MyGui := Gui([Options, Title, EventObj])MyGui := Gui(, "예제 매크로")Gui object가 반환된다.MyGui.Show()gui 보여주기. 참고: https://www.autohotkey.com/docs/v2/lib/Gui.htm#Call2. gui에 추가하기문법: GuiCtrl := MyGui.Add(ControlType [, Options, Text])MyGui.Add("Text", , "--------예제 매크로 프로그램--------")MyGui.Add("Button", "w100","매크로1 시작")MyGui.Add("Button", "w100 x+10 yp","매크로2 시작")MyGui.Add("DropDownList", ".. AHK(오토핫키) 2025.03.21
spring 테스트 코드 작성 에러나 버그나 났을 때, 팀 프로젝트에서 내가 작성한 기능이 오류가 있는 것인지 동료의 코드가 오류가 있는 것인지프로젝트가 커지면서 기능이 이것저것 엮여있는 경우 버그가 나면 어느 기능이 오류가 나는지 알기 위해서는 테스트 코드를 잘 작성 해놓아야 한다. 테스트는 해당 기능의 패키지에서 main과 test만 바뀐 같은 위치에서 테스트한다. 해당 클래스이름 + Test로 클래스 이름을 만드는 것이 국룰이다. intellij 에서 Ctrl + Shift + T 단축키로 테스트 클래스를 만들 수 있다. 메소드에 @Test를 붙여 테스트를 한다.메소드에 @BeforeEach를 붙이면 테스트 실행전 실행되는 메소드가 된다.메소드에 @AfterEach를 붙이면 테스트실행후 실행되는 메소드가 된다.클래스에 @Spr.. Java 2025.03.11
spring 기본 개념 너무 복잡한 표준, 배보다 배꼽이 더 큰 객체지향으로 인해 스프링 프레임워크가 탄생했다.solid원칙중 ocp와 dip를 지켜주는 di(dependency injection)컨테이너가 스프링의 핵심이다.di컨테이너가 있으므로 스프링을 이용하는 개발자는 사용 영역을 수정하지 않고 확장할 수 있다.또한 di컨테이너가 적절한 인스턴스를 생성자에 주입해줌으로서 구현 클래스에 의존하지 않는다. di컨테이너에 빈을 등록하는 방법은 1. @Configuration클래스에 @Bean메소드들을 만들어 싱글톤으로 등록할 수 있고 2. @Component 어노테이션을 클래스에 붙여 스프링이 컴포넌트 스캔을 할 때 등록하게 한다.@Component 어노테이션을 사용해 빈을 등록할 때, 의존관계 주입은 생성자 주입을 보통 사용.. Java 2025.03.11
thymeleaf 템플릿 엔진 아래에 위 태그를 삽입한다. 템플릿 처리에는 영향을 미치지 않지만, 우리 IDE가 모든 th:* 속성에 대한 네임스페이스 정의가 부족하다고 불평하는것을 방지하는 역할이다. 1. thymeleaf 표준 표현 문법문서: https://www.thymeleaf.org/doc/tutorials/3.1/usingthymeleaf.html#standard-expression-syntax● 간단 표현 ○ 변수 표현식: ${...} ○ 선택 변수 표현식: *{...} ○ 메시지 표현식: #{...} ○ 링크 URL 표현식: @{...} ○ 부분 표현식: ~{...}● 문자 그대로의 ○ 텍스트 리터럴: 'one text', 'Another one!', ... ○ 숫자 리터럴: 0, 34, 3.0, 12.3,.. Java 2025.02.11
spring Controller 1. Annotation Interface Controller문서: https://docs.spring.io/spring-framework/docs/6.2.x/javadoc-api/org/springframework/stereotype/Controller.html 주석이 달린 클래스를 "Controller"라고 나타낸다. RequestMapping주석을 베이스로 하는 주석 처리 메소드와 함께 사용되는 편이다. 스프링이 @Component를 감지하는 것처럼 @Controller는 자동 감지가 되고, 그것을 위한 bean이 자동 등록 된다.2. Annotation Interface RequestMapping문서: https://docs.spring.io/spring-framework/docs/6.2.x/ja.. Java 2025.02.08
spring View, 템플릿 엔진 1. Spring View스프링 부트에서 View는 두가지로 나눌 수 있다. 누가 언제 요청하든 똑같은 대답을 해주는 static과 상황마다 다른 대답을 해주는 templates로 나뉜다. 1.1. static view Hello there hellosrc - main - resources - static폴더에 hello.html을 만들어 보자. 그리고 SpringApplication을 실행후 웹에서 127.0.0.1:8080/hello.html를 접속하면 화면이 보일것이다. 이처럼 static폴더에 html파일을 만들면 스프링 앱에서 별다른 조치 없이 자원에 접촉이 가능하다. index.html을 파일 이름으로 하면 127.0.0.1:8080에 접속해도 화면이 보일 것이다. index.htm.. Java 2025.02.07