본문 바로가기

java

(62)
TIL 241015 - Spring 숙련 2주차 완강 + 개인과제 어제부터 이어서 듣던 Spring 숙련 파트 2주차 강의를 오늘 모두 수강하였다. 말고도 오늘 과제 코드 작성을 시작하여 여러가지 기능을 추가하고 수정하는 중인데, 일단 이번 TIL 에서는 간략하게 오늘 강의에서 배운 내용 들을 정리해보려고 한다.10강. N 대 M 관계@ManyToMany, 중간 테이블을 생성해서 사용한다. 서로서로 필드로 List 컬렉션으로 관계를 지정한다. 이때 생성되는 중간테이블은 우리가 직접 Entity 로 만드는것이 아니기 때문에, PK도 생성되지 않고 직접관리가 힘들다. 이 때, 중간 테이블을 직접 만들어보는것은 어떨까? 중간 테이블을 만들기 위해 Entity 에 Order 클래스를 생성하고, Repository 도 JpaRepository로 Extends 해서 넣어주면 테스..
[프로그래머스] 25회차 - 옹알이 (2) 옹알이 (2)문제 설명 머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 30 문자열은 알파벳 소문자로만 이루어져 있습니다. 나의 풀이class Solution { public int solution(String[] babbling) { String[] canP..
[프로그래머스] 24회차 - 로또의 최고 순위와 최저 순위 문제설명로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다.로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 25라고 가정해보겠습니다. 당첨 번호 6개가 31, 10, 45, 1, 6, 19라면, 당첨 가능한 최고 순위와 최저 순위의 한 예는 아래와 같습니다.순서와 상관없이, 구매한 로..
TIL 241014 - Spring 숙련 1~2주차 Spring 입문이 지난 주 끝나고, 가능한 빠르게 숙련 내용을 학습중에 있다. 입문강의를 처음 들었을 때 만큼 이해 안되는 부분들이 상당히 많았는데 일단 목요일에 제출해야하는 과제를 위해서 강의의 진도를 막무가내로 나가고 있다. 오늘은 숙련강의 1주차~ 2주차의 수강내용을 정리하려고 한다. 오늘 작성하는 내용의 자세한 부분은 과제가 끝난 후 천천히 한 파트씩 디테일하게 공부해볼 예정이다.1주차10강. 'Spring Security' 프레임워크Spring Security 를 사용해서 인증/인가를 편리하게 해줄 수 있다. 일단 현재까지 만들었던 프로그램에서는 사용이 불가능하다(SpringAuthApplication 클래스에서 Security 기능을 사용하지 못하게 제어해두었기 때문) 제어를 해제해 주고, ..
[프로그래머스] 23회차 - 기사단원의 무기 기사단원의 무기문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 공..
TIL 241011 Spring 입문 끝 - 숙련 시작 오늘은 드디어 열심히 듣던 Spring 입문에 대한 강의를 모두 끝마치고, Spring 숙련에 다시 입문했다(?) 강의에서 배운 내용이 너무 많아서 머리도 좀 복잡하고 아직 내 지식이 되지 않은 기분이라,  이번 TIL에서는 오늘 배운 내용을 간략하게 정리해보고 잘 모르는 개념이나, 더 알고싶은 개념은 Spring 카테고리에서 항목별로 자세하게  다뤄볼 예정이다.14강. Query Methods란 무엇일까?JpaRepository 인터페이스에서, 제네릭으로 매핑되어 있는 DB 테이블에(Memo) 요청을하고자 하는 SQL을 메서드  이름으로 SQL 문을 사용할 수 있게 해준다. List findAllByOrderByModifiedAtDesc();위와같은 메서드를 선언하면 메서드 이름이 곧 SQL 에서 실행..
TIL 241010 - Spring 입문 막판스퍼트 TIL 작성은 11일 이지만, 블로그에 업로드만 하지않았었을 뿐 임시저장으로 저장해둔 내용을 오늘 포스팅 한다.강의에서 다룬 내용은 빠르게 개념을 짚고 넘어가는 방식으로 진행하도록 하였고, 최대한 내용은 간략하게 요약하였다.추후에 공부를 복습을 진행할 때 모르는 개념은 다시 깊게 공부하여 Spring 카테고리에 항목별로 자세히 정리해서 업로드할 예정이다.9강. 영속성 컨텍스트의 기능영속성 컨텍스트는 내부적으로 캐시 저장소를 가지고 있다. 캐시저장소에 우리가 저장하는 Entity 객체들이 Map 자료구조 형태로 저장되어 있다. key 에는 @id로 매핑한 기본키 즉, 식별자 값을 저장한다. value 에는 해당 Entity 클래스의 객체를 저장한다. 영속성 컨텍스트가 캐시 저장소를 어떻게 활용하고 있을까?..
[프로그래머스] 22회차 - 덧칠하기 덧칠하기문제 설명 어느 학교에 페인트가 칠해진 길이가 n미터인 벽이 있습니다. 벽에 동아리 · 학회 홍보나 회사 채용 공고 포스터 등을 게시하기 위해 테이프로 붙였다가 철거할 때 떼는 일이 많고 그 과정에서 페인트가 벗겨지곤 합니다. 페인트가 벗겨진 벽이 보기 흉해져 학교는 벽에 페인트를 덧칠하기로 했습니다. 넓은 벽 전체에 페인트를 새로 칠하는 대신, 구역을 나누어 일부만 페인트를 새로 칠 함으로써 예산을 아끼려 합니다. 이를 위해 벽을 1미터 길이의 구역 n개로 나누고, 각 구역에 왼쪽부터 순서대로 1번부터 n번까지 번호를 붙였습니다. 그리고 페인트를 다시 칠해야 할 구역들을 정했습니다. 벽에 페인트를 칠하는 롤러의 길이는 m미터이고, 롤러로 벽에 페인트를 한 번 칠하는 규칙은 다음과 같습니다. 롤러..