분류 전체보기 51

99클럽 코테 스터디 3일차 TIL : 문자열 압축, StringBuilder

오늘의 학습 키워드문자열 처리압축을 통한 변환Java의 문자열 메서드 사용오늘은 문자열을 특정 단위로 잘라서 반복되는 문자열을 압축하는 문제를 해결했습니다. 이를 위해 문자열을 다양한 단위로 잘라보고, 반복되는 문자열을 카운트하여 압축된 문자열의 길이를 구하는 방법을 배웠습니다. Java의 substring 메서드와 StringBuilder를 활용해 문자열을 처리했습니다.오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지문자열을 특정 단위로 잘라서 반복되는 부분을 압축하여 가장 짧은 문자열을 찾는 문제였습니다. 처음에는 문자열을 단위로 자르는 방법과 반복되는 부분을 효율적으로 찾아내는 로직을 구현하는 데 어려움을 겪었습니다. class Solution { public int solution(S..

[알고리즘] 2024.07.25

99클럽 코테 스터디 2일차 TIL : 문자열 처리, HashMap

오늘의 학습 키워드문자열 처리맵핑을 통한 변환Java의 문자열 메서드 사용공부한 내용 본인의 언어로 정리하기오늘은 문자열 내에 일부 숫자를 영단어로 바꾼 문자열을 원래 숫자로 되돌리는 문제를 해결했습니다. 이를 위해 영단어와 숫자의 맵을 만들어서 문자열 내의 영단어를 대응하는 숫자로 치환하는 방법을 배웠습니다. Java의 HashMap을 활용해 영단어와 숫자를 매핑하고, replace 메서드를 이용해 문자열을 변환했습니다.오늘의 회고어떤 문제가 있었고, 나는 어떤 시도를 했는지 문자열 내에 숫자와 영단어가 혼합되어 있는 경우 이를 정확히 숫자로 변환하는 문제였습니다. 처음에는 숫자가 아닌 문자를 숫자로 변환하기 위해 반복문과 조건문을 사용하려 했습니다. 숫자가 아닌 문자를 만나면 이를 변환해 숫자로 바꾸..

[알고리즘] 2024.07.25

99클럽 코테 스터디 1일차 TIL : 배열의 최대공약수 계산

오늘의 학습 키워드최대공약수 (GCD) 계산배열의 최대공약수조건을 만족하는 가장 큰 양의 정수 찾기유클리드 알고리즘공부한 내용 본인의 언어로 정리하기오늘의 문제 : 숫자 카드 나누기 https://school.programmers.co.kr/learn/courses/30/lessons/135807class Solution { public int solution(int[] arrayA, int[] arrayB) { // 1번 조건 - 배열의 최대 공약수 int gcdA = gcdOfArray(arrayA); int gcdB = gcdOfArray(arrayB); // 2번 조건 - 다른 배열을 하나도 나눌 수 없는지 확인 i..

[알고리즘] 2024.07.23

[Spring Security] 시큐리티 환경 설정과 로그인

백기선님의 스프링부트 개념과 활용 기본편 강의를 듣고, 정리한 글입니다. 스프링부트 시큐리티 환경을 설정하고 회원가입과 로그인까지 완료했습니다. 환경 설정 MySQL 세팅 먼저 MySQL Workbench에서 MySQL DB와 사용자를 생성한다. create user 'cos'@'%' identified by 'cos12345'; GRANT ALL PRIVILEGES ON *.* TO 'cos'@'%'; create database security; use security; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements. 프로젝트 생성 인텔리제이의 Spring Initializer를 사용해 프로젝트를 생..

[Spring] 2023.01.18

[Spring Security] WebSecurityConfigurerAdapter Deprecated 해결

더이상 WebSecurityConfigurerAdapter를 지원하지 않는다. spring 공식문서에 가보니 Spring Security 5.7.0-M2 부터는 구성 요소 기반 보안 설정으로 변경된다는 이슈가 있었다. WebSecurityConfigurerAdapter 상속 후, configure 메소드를 오버라이딩 하여 설정하는 방식에서 SecurityFilterChain를 빈으로 등록하는 방식으로 변경했다고 한다. // 이전 방식 // WebSecurityConfigurerAdapter 상속 후, configure 메소드 오버라이딩 @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdap..

[Spring] 2023.01.18

[Spring] 템플릿 엔진 Mustache의 장점

Template Engine 템플릿 엔진은 지정된 템플릿 양식과 데이터를 합쳐 HTML 문서를 출력하는 소프트웨어이다. 웹사이트 화면을 어떤 형태로 만들지 도와주는 양식이라고 할 수 있다. 템플릿 엔진을 사용하면 하나의 템플릿으로 여러 페이지를 렌더링할 수 있기 때문에 재사용성이 높고 유지보수가 용이하다. 템플릿 엔진은 서버 사이드 템플릿 엔진과 클라이언트 사이드 템플릿 엔진으로 나눌 수 있다. Server Side Template Engine 서버 사이드 템플릿 엔진은 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 템플릿에 넣어 HTML을 그린 뒤 클라이언트에 전달해주는 역할을 한다. HTMl 코드에서 고정적으로 사용되는 부분은 템플릿으로 만들어두고 동적으로 생성되는 부분만 템플릿 특정 장..

[Spring] 2023.01.17

[Java] Builder 패턴

Java에서 객체를 생성할 때 사용하는 패턴은 대표적으로 생성자 패턴과 빌더 패턴이 있다. 빌더 패턴을 사용하면 지금 채워야 할 필드가 무엇인지 명확하게 지정할 수 있다. 예시부터 보면.. public class Person { private String name; private String grade; public Person(String name, String grade){ this.name = name; this.grade = grade; } // Getter public String getName() { return name; } public String getGrade() { return grade; } } String name = "jueun"; String grade = "4"; Person..

[Spring] 2023.01.16

[Spring] ERROR 1819 (HY000): Your password does not satisfy the current policy requirements.

비밀번호 정책에 맞지 않는 단순한 비밀번호를 설정해서 생긴 오류이다. '12345'처럼 단순한 비밀번호를 사용하려면 validate_password_policy를 낮춰야 한다. 현재 validate_password_policy는 "SHOW VARIABLES LIKE 'validate_password%';"로 확인할 수 있다. validate_password_policy는 LOW, MEDIMU, STRONG 3단계로 구성되어 있다. validate_password_policy를 최소 8자 이상 Length만 지켜주면 되는 LOW로 낮춰준다. mysql> set global validate_password.policy=LOW; Query OK, 0 rows affected (0.00 sec) 다시 user를..

[Spring] 2023.01.15

[기록] 2022년 회고 - 컴공 2학년

2022년은 열심히 놀고 열심히 공부한 해라고 할 수 있다. 3개의 동아리, 1개의 커뮤니티에 들어가 다양한 사람들을 만났고, 4번의 MT, 6번의 여행을 가며 코로나 기간 놀지 못한 한을 풀었다. 또 6개의 스터디를 하며 지식을 쌓았고, 5개의 프로젝트를 하며 개발자가 되기 위한 준비를 했다. 당연히 양보단 질이 중요하지만 이정도 양이면 스스로에게 열심히 살았다고 말해줄 수 있을 것 같다. 2022년에 생긴 모든 에피소드를 적다 보면 글이 끝나지 않을 것 같아 대학 생활 위주로 적어보려고 한다. 1월 1월에는 ‘출석하는 동안’ 프로젝트를 했다. 학생 정보를 관리하고 출석을 확인할 수 있는 웹사이트를 개발하는 프로젝트였는데, 백엔드 응애 시절이라 DB 파트로만 참여했다. 이때 처음으로 SQL문을 공부하면..

[기록] 2023.01.03

[기록] 2022 요약

프로젝트 학생 출석 관리 웹사이트 ‘출석하는 동안, 22/01 - 22/03 홍대생 맛집 지도 서비스 ‘멋사먹자’ 22/07 - 22/09 태그별 카페 추천 앱, ‘홍카추’ 프로젝트 관리 캘린더 웹, '도치의 마지막 잎새' 동아리 & 스터디 개발 연합동아리 멋쟁이사자처럼 대학 10기 백엔드 파트 멤버 22/03 - 22/09 신촌연합해커톤 ‘trash-off’ 22/08/27 개발 학회 Google Developer Student Clubs Hongik Univ. 1st Core Member 22/07 - 23/09 백엔드 파트 멤버 22/03 - 22/09 개발 커뮤니티 BlazingDevs Django 스터디 ‘장고열명타요’ 22/03 - 22/06 알고리즘 자기주도학습동아리 ‘야나두리즘’ 22/03..

[기록] 2023.01.01