➜ 일상 이야기

2024년 1월의 공부기록장

### 1/1 오늘은 로그인 기능 개발을 진행할 예정이다. authority pk값을 id 로 잡았는데 이메일로 잡는게 나을거같다. 다시 짜야겠다. 맥 새로산 노트북 거치대 테스트중 나쁘지 않게 되는 것 같다! 시야각이 높아져서 기분이 좋다! ### 1/2 어제 로그인 기능 개발을 했다. 세션과 쿠키를 이용하는 방법 권한기능, 삭제 업데이트 bycrpt 기능을 다 이용했다. 그리고 회원가입 기능도 개발 했다. 트랜잭션과 시큐리티 기능에 있어서도 개발을 완료했다. 오늘은 프론트 부분을 좀 손봐야될 것 같다. 로그인 기능도 메인페이지, 마이페이지, 그리고 도서 페이지도 ui적으로 만들어줘야될 것 같다. 세션테이블까지 만드는데 성공했다 리멤버 미까지 구현 완료했다. 이제 페이지 기능 중 공유나 좋아요 댓글 이..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 오랜 기간 보호한 동물(2) (MySQL)

INS 테이블과 OUTS 테이블을 ID 기준으로 조인한다. order by에서 입양일 - 보호 시작일로 정렬한다. limit 을 이용해 상위 2개만 출력하도록 한다. select INS.ANIMAL_ID, INS.NAME from ANIMAL_INS INS join ANIMAL_OUTS OUTS on INS.ANIMAL_ID = OUTS.ANIMAL_ID order by (OUTS.DATETIME - INS.DATETIME) DESC limit 2;

➜ 코딩 테스트/프로그래머스

프로그래머스 - 있었는데요 없었습니다 (MySQL)

INS 테이블과 OUTS를 ID 기준으로 조인하고 where 문을 이용해 시작일이 입양일보다 빠른경우를 필터링한다. 그리고 결과를 보호 시작일 기준으로 오름차순한다. select INS.ANIMAL_ID, INS.NAME from ANIMAL_INS INS join ANIMAL_OUTS OUTS on INS.ANIMAL_ID = OUTS.ANIMAL_ID where INS.DATETIME > OUTS.DATETIME order by INS.DATETIME;

➜ 코딩 테스트/프로그래머스

프로그래머스 - 더 맵게 (JAVA)

처음에 풀었던건 list를 이용해서 풀었다. 근데 역시 매번 sort를 시켜줘야 하니 확실히 성능면에서 떨어질 것이라 생각했는데 역시 테스트케이스는 다 맞았으나 효율성 면에서 시간초과가 났다. package Programmers; import java.util.*; public class ProgrammingBasic { public static void main(String[] args) { int[] scoville = {1, 2, 3, 9, 10, 12}; int K = 7; System.out.println(solution(scoville, K)); } public static int solution(int[] scoville, int K) { int answer = 0; List scovlist..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 완주하지 못한 선수 (JAVA)

이 문제는 hashmap을 활용하는 문제였다. 각 참가자의 이름을 키 그리고 등장 횟수를 value로 저장하고 완주자 명단에서 참가자를 찾아 value를 감소시키고 마지막에 남는 참가자가 완주하지 못한 코드를 작성했다. package Programmers; import java.util.*; public class ProgrammingBasic { public static void main(String[] args) { String[] participant = {"leo", "kiki", "eden"}; String[] completion = {"eden", "kiki"}; System.out.println((solution(participant, completion))); } public static ..

➜ Spring

JAVA / Spring 서비스 레이어에 대해서

서비스 레이어란 서비스 레이어는 비즈니스 로직을 캡슐화하고 데이터 액세스 레이어와 프레젠테이션 레이어 사이에서 중재자 역할을 한다. 서비스 레이어는 애플리케이 핵심 비즈니스 로직을 구현하고, 데이터의 일관성과 무결성을 유지하는 중요한 기능을 수행한다. 서비스 레이어의 역할 - 비즈니스 로직의 중앙화 : 서비스 레이어는 여러 DAO 메소드를 조합하고 필요한 비즈니스 규칙을 적용하여 데이터를 처리한다. - 데이터 액세스 로직과의 분리 : 데이터 액세스 로직과 비즈니스 로직을 분리하여, 각각의 변경이 서로에게 미치는 영향을 최소화한다. - 재사용성과 유지보수성 향상 : 서비스 레이어를 통해 비즈니스 로직을 중앙화함으로써, 코드의 재사용성을 높이고 유지보수를 용이하게 한다. -트랜잭션 관리 : 서비스 레이어는 ..

➜ 일상 이야기

패스트캠퍼스 Android 앱 개발 올인원 패키지 온라인(완강), 30개 프로젝트로 배우는 앱개발 초격차 패키지 강의 등 여러 수강 후기

패스트캠퍼스 강의를 오래전부터 들어왔었고 도움을 많이 받아서 수강후기를 작성하려 했는데 이번에 수강후기 이벤트를 진행해서 미루다가 이제야 수강후기를 작성하게 되었다! 내가 패스트캠퍼스 강의를 접하게 된건 편입해서 학교를 들어가서 졸업작품을 준비하게 됐을 때였다. 그리고 여러 강의를 결제 했는데 그중 주로 듣던 건 이렇게 네가지를 주로 들었다. 이 중에서 앱 개발 관련 패키지를 처음 결제하게 되었는데 강의나 내용들이 마음에 들어서 백엔드 관련 강의도 수강하게 되었다. 강의 선택 이유 내가 앱 개발로 강의를 결제하게 된 건 유튜브에서 여러 무료 강의들을 찾는 것보다 제대로 공부할 거면 커리큘럼이 짜인 강의를 아얘 듣는 게 낫다고 생각했다. 인프런도 생각해 봤지만 인프런 유로 강의들이랑 가격 차이가 많이 나지..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 점프와 순간 이동 (JAVA)

package Programmers; import java.util.*; public class ProgrammingBasic { public static void main(String[] args) { int N = 5000; System.out.println(solution(N)); } public static int solution(int n) { int ans = n; int count = 0; //한 번에 K칸을 앞으로 점프, 현재까지온거리 * 2 에 해당하는 위치로 순간이동 //순간이동은 건전지 사용량 x //K칸을 점프하는건 K만큼의 건전지 사용량이 듬 //순간이동을 하는게 더 효율적 //거리가 N만큼 떨어져 있는 곳으로 이동 //점프를 하는건 최소화하기 //사용하려는 건전지 사용량의 최솟값..

➜ 코딩 테스트/프로그래머스

프로그래머스 - 상품 별 오프라인 매출 구하기 (MySQL)

select PRODUCT_CODE, SUM(P.PRICE * O.SALES_AMOUNT) AS SALES from PRODUCT P join OFFLINE_SALE O on P.PRODUCT_ID = O.PRODUCT_ID group by P.PRODUCT_CODE order by SALES desc, P.PRODUCT_CODE asc;

➜ 코딩 테스트/프로그래머스

프로그래머스 - [1차] 비밀지도 (JAVA)

이 문제는 format을 사용해서 공백을 0으로 바꿔주고 Integer.toBinaryString을 통해서 2진수로 변환해주는게 중요했다. package Programmers; import java.util.*; public class ProgrammingBasic { public static void main(String[] args) { int n = 5; int[] arr1 = {9, 20, 28, 18, 11}; int[] arr2 = {30, 1, 21, 17, 28}; System.out.println(Arrays.toString(solution(n, arr1, arr2))); } public static String[] solution(int n, int[] arr1, int[] arr2) ..

강맹석
맹석의 IT노트 & 일상 기록