
java 코테와 문법 공부로 오랜만에 봤던 html에 대해 정리해본다.body 태그직접적인 내용이 포함되는 공간 네이버를 예로 든다면 위의 사진이 body 부분이다.div 태그body 안의 부분에서 여러 부분들을 나눌 수 있다.사진 상 빨간 구역이 해당 구역이다. cl

반올림 : Math.round(값)올림 : Math.ceil(값)내림 : Math.floor(값)

FireBase로 DB 연동을 하는 와중에 버튼 클릭 액션에서 DB 적재가 되지 않는 오류가 발생하였다. DB를 다시 생성하는 수고로움이 있었으나, jQuery 를 import 하지 않아 발생한 오류였다.사용 전 importinput 박스 값 가져오기\`$('input

배열을 고정 크기의 리스트로 변환하는 메서드사용법단, AsList 로 리스트를 초기화하게 되면 원소를 추가하거나 삭제할 수 없다. 활용법문제 링크(https://school.programmers.co.kr/learn/courses/30/lessons/12919

예외를 만들기 전에 자신의 예외를 checked 로 할 건지, unchecked 로 할 건지 결정부터 한다.이번엔 checked 예외를 만들어본다.사용자가 예외를 해결할 수 있는 경우 기회를 주며 예외처리를 강제 한다.Exception 을 상속 받아 사용한다.ex) f

코드의 가독성과 수정의 편리함을 위해 사용!signal 값을 통한 Switch case 문으로 사칙연산을 수행하는 코드를 아래와 같이 작성 할 수 있다. 보다시피 중복되는 코드가 보이기도하며 signal 에 사칙연산 기호가 들어가므로 실제로 어떤 의미인지 모를 수도 있

사용할 타입을 미리 결정하지 않고, 실제 사용하는 '생성' 시점에 타입을 결정한다.코드를 작성하다보면, 같은 코드인데 자료형만 달라서 코드가 중복되는 경우가 존재하기도 하고사용자에게 입력 받는 자료형을 다양하게 받고자 할 때가 있을 수도 있다. 이럴 때 제네릭을 활용하

진법 변환에 toString을 활용한다예를 들어 15라는 10진수로 된 숫자를 3진수로 바꾼다면 이와 같이 사용한다.바꾸고자하는 값을 String으로 받은 뒤에 Integer.parseInt로 변환한다. 코드는 아래와 같다.

팀원들과 알고리즘 코드리뷰 중 스택을 for 문으로 출력했을 때 값이 순서대로 나온다는 걸 알게 되었다. 원래 스택 자료구조는 LIFO 구조로 넣은 순서의 반대로 출력되는게 아닌가? 라는 궁금증으로 한 번 공부해 봤다. 궁금증이 생긴 코드는 이와 같았다. 스택을 사

인텔리제이에서 폴더와 같은 그림으로 표시되는 module 이 무엇인지 궁금했다.인텔리제이에서 module 은 폴더 모양을 가지고 있다. 그래서 처음엔 pakage 와 다를 점이 없는 것으로 알았다. 그래서 새로운 프로젝트를 생성할 때 Module을 패키지와 같이 나누면

코테 문제를 풀다보면 char 형으로 들어오는 값이 숫자인지 판별하는 문제가 많다. 이 때 활용하면 좋을 메서드이다.사용법은 간단하다. 숫자인지 판별하고 싶은 char 형을 Character.isDigit() 의 괄호 안에 넣으면 된다.결과는 숫자일 경우 True ,

위의 예시에서 볼 수 있듯이 그냥 charAt(index) 를 출력하면 문제 없이 출력됨을 알 수 있다. 하지만 값을 더해보면 3이 아니라 99라는 숫자가 출력된다. 이 이유는 char 형이 사칙연산에 이용되면 아스키 코드 값 으로 연산이 되어 문제가 생기는 것이다.아

그냥 merger 를 이용하며 pull request 한 결과는 아래 이미지와 같다.거의 등고선이런 결과가 나오지 않기 위해 rebase 를 활용하면 좋다는 의견을 들었다.그럼 rebase 가 뭘까?결국 merge 처럼 코드를 병합할 때 사용하는데 제일 특징적 이었던

Scanner 를 이용해 키보드 입력을 받을 때 nextInt() 를 사용하고 nextLine 을 바로 사용하면 안된다.nextInt() 는 키보드에서 입력 받은 값에서 개행문자를 제외한 내용만 가져오기에, 버퍼에 개행문자가 남는다.따라서 이후에 nextLine() 을

만약 입력받는 문자열에 앞 뒤 공백을 사용자가 입력하였으면 어떻게 해결할까?이와 같은 상황에서 input 으로 들어오는 값의 앞 또는 뒤에 공백이 존재한다면 tirm() 을 사용해볼 수 있다.이렇게 trim() 을 문자열 뒤에 추가하여 공백에 대한 오류를 방지할 수 있

쉽게 데이터의 흐름과 처리를 정형화된 틀로 만들어 둔 것이다.각 계층간의 이동시엔 Dto 객체로 만들어 데이터를 주고 받는다.데이터 요청이 들어오는 입구이자 수행되어 나온 데이터가 나가는 출구실제 데이터에 대해 요청된 로직이 수행되는 곳데이터가 저장되어 있는 곳

메서드 코드를 자동으로 생성해 주는 세상 유익한 라이브러리Getter & Setter : 게터 세터 만들어줌NoArgsConstructor : 기본 생성자를 만들어줌AllArgsConstructor : 필드값이 전부 들어가 있는 생성자를 만들어줌RequiredArgsC

블로그 글처럼 한 페이지에 보여지는 글의 개수를 정해서 보여주도록 작업기존에 3 Layer 로 구현 중이던 프로젝트에서 페이징 처리를 해보려한다.시작에 앞서 참고한 영상 ➡️ 유튜브 영상영상에서 매우 매우 간단하게 설명해주셔서 어떤 흐름인지 감을 찾기 쉬웠다.일단 페이

웹에서 body 로 받은 값을 Dto 로 보낼 때 필수적으로 값이 들어와야 하는 것들을 설정하고 싶을 수 있다. 예를 들면 비밀번호라던지 아이디라던지 null 값이 들어오지 않고 무조건! 값을 입력 받도록 하고 싶다면?그렇다면 값을 입력 받을 때 애초에 원하는 필드의

개발 기간 : 2024.08.09 ~ 2024.08.15개발 목적 : 클라이언트가 일정을 생성, 조회, 수정 및 삭제할 수 있는 RESTful API 서버를 구현한다.🍏 레포지토리 링크manager 테이블의 manager_Id 를 schedule 의 manager_I

웹 서핑을 하다보면 심심치 않게 볼 수 있는 단어다.쿠키는 아주 간단한 정보를 따로 웹서버에 보관하여 클라이언트의 웹 경험을 보다 쾌적하게 할 수 있도록 돕느다.예를 들면, 매번 동일한 웹 사이트에 방문할 때마다 로그인을 받게 된다면 사용자 입장에선 귀찮을 수 있다.이

제목에 대한 내용들을 처음 코드로 구현한다. 따라서 느끼는 점들과 새롭게 알게된 내용들을 따끈따끈하게 기록하려 한다.우선, AuthController 를 통해 Cookie, Session, JWT 를 생성 및 조회 할 수 있도록 관리하고JwtUtil 에서 JWT 에 관

<예시 상황>7070은 서버 포트 / 8080은 클라이언트 포트서버의 /api/server/get-call-obj 로 RequestParam 으로 "query" 에 대해 기입 받은 내용을 get 메서드로 보내 값을 가져오려 한다.우선 Di 의존성 주입부터,다른 애

🧑🏻💻 예시 상황회원과 팀 테이블이 있다고 가정.여러명의 회원이 하나의 팀에 속해있다.이 때 연관 관계를 어떻게 맵핑할까?JPA를 활용한 연관관계 맵핑에서 데이터베이스의 테이블끼리 연관관계와 자바에서 객체끼리의 연관관계의 차이를 알고 가야한다.이렇게 한명이 회

일정 관리 프로젝트를 하던 중 생긴 N+1 문제이다.todo 라는 일정 테이블과 user 라는 유저 테이블이 존재한다.user_todo 라는 테이블은 todo 의 일정과 user 의 유저가 매칭 됐을 때, 해당 정보를 저장하기 위한 테이블이다.만약 1번 일정을 3번 유

HTTP 통신을 위한 도구로 RESTful API 웹 서비스와의 상호작용을 쉽게 외부 도메인에서 데이터를 가져오거나 전송할 때 사용되는 스프링 프레임워크의 클래스를 의미한다.출처일정 관리 프로젝트 중에 외부 API 를 활용해 값을 가져오는 로직을 설계했다.Json 데이

프로젝트 중 API 로 들어오는 Json 데이터와 아래와 같았다. 원하는 날짜에 대한 weather 값만 사용하고 싶은데 어떻게 다뤄야 할까? 이를 ObjectMapper 를 활용하여 풀어나갔다.json 데이터를 객체로 변환객체를 json 데이터로 변환을 처리해주는

EntityManagerFactory 에서 EntityManager 을 각 요청마다 배치한다.EntityMangaer를 이용해 DB와 연결을 하는데 아래와 같은 특징들이 존재한다.영속상태entityManager.persist(member)persist 값에 저장할 객체

이와 같이 Item 이라는 부모 클래스를 상속받는 각각의 자식 클래스가 존재할 때 DB 맵핑을 어떻게 해야할까?총 3가지의 전략이 존재한다.모든 전략은 @Ingeritance 어노테이션을 통해 구분된다.자바에서 클래스를 상속 받는 형식과 제일 비슷한 방식으로 조인을 통

공통되는 매핑 정보가 필요할 때 부모 클래스에서 만들어 사용할 수 있다.결국, 공통 속성을 BaseEntity 라는 클래스를 만들어 가져다 사용!다음과 같이 각 클래스에서 생성일과 수정일에 대한 값을 넣고 싶을 때, 하나 하나 추가 할 수도 있지만부모 클래스를 만들어

일정 관리 서버 프로젝트 → 해당 프로젝트를 내용을 회고하며 작성합니다. 프로젝트 중 DB 로직을 활용하는 Service 에서 데이터의 영속성 관리를 위해 Transactional 를 활용했다. 코드상에서 보면 다음과 같다.해당 서비스에서 실행되는 메서드 전부 전이되도

Spring 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해줌으로써 개발의 편리함을 더해준다.Security 에서 인증/인가가 된 유저 정보를 UserDetails 라는 객체에 담겨 컨트롤러로 넘어간다.인증 및 인가 로직은 애플리케이션의 모든 부분에서 필요하므로

프로젝트를 할 때 개발 단계에서 테스트 할 때마다 데이터를 넣기 귀찮아서 알게 된 기능이다.Spring 이 동작할 때 미리 값을 넣어준다.지난 일정 관리 프로젝트에 초기 더미 데이터를 넣는 과정을 진행해 보았다.똑같이 Component 로 명시하고 CommandLine

이유가 뭘까?먼저 해당 오류를 이해하기 위해 프록시 라는 개념을 알고 가야했다.Transactional 이 설정된 곳에서 작동지연로딩시 엔티티를 불러올 때 사용되는 객체 역할을 하는 대리 객체데이터가 필요할 때 데이터베이스에서 정보를 불러옴데이터 조회를 지연시켜 성능

여러 API 로 생기는 각각의 예외를 일관성 있게 관리할 수 있는 방식을 알아본다.Controller 레이어에서 성공 state 를 반환할 때, ResponseEntity로 바로 반환하지 않고 반환 값을 커스텀할 수 있게 만들어지는 클래스로 제네릭 변수를 받아 dto

AOP (Aspect Oriented Programing)관점지향 프로그래밍중복문제, 변경문제 등의 이유로 관심사 분리를 통해 유지보수성을 향상시킬 수 있는 프로그래밍이다.어드바이스실제로 실행되는 부가기능 코드 (예를 들면 시간측정 로직 OR 트랜잭션 처리)포인트컷어드

테스트 코드 작성 중 기록한 내용순서로 작성하며 실행 로직 순서로 구현한다.private 으로 설정된 멤버변수를 강제적으로 설정할 때 사용해당 메서드가 실행 됐는지 또는 몇번 수행됐는지 체크할 때 사용.컨트롤러가 예상대로 작동하는지, 웹 요청과 응답이 제대로 이뤄지는지

테스트 코드 작성 중 Page 를 어떻게 처리했는지에 대한 기록이다.Page 를 리턴해야한다면,List 를 먼저 생성한 후Page 를 생성하여 해당 List 를 삽입한다.

프로젝트에서 Github actions 을 활용해 main 브랜치로 새로운 코드가 push 되거나 병합될 때 설정한 Aws ec2 로 빌드된 jar 파일과 Dockerfile 을 통해 해당 인스턴스에서 도커가 실행되고 Spring 이 실행된다.인스턴스에 docker ,

알림 기능 구현 중 활용한 내용이다.알림을 구현하는 기술이 여러가지가 있지만 SSE 를 사용하여 개발하였다.이에 대한 회고를 작성 해본다.Redis pub/sub 을 사용하기에 앞서 SSE 에 대한 사전 지식이 요구된다.HTML5 표준에 정의된 프로토콜로 HTTP를 통