전체 글 16

[SSAFY 12기 합격 후기] 준비 과정 및 꿀팁! (전공)

0. 들어가기 전에..내 다른 블로그 글들을 보면 알겠지만 난 '스파르타 코딩 클럽' 이라는 내일배움캠프에서 Kotlin & Spring Boot 트랙을 교육중이었다. 하지만 두 가지가 내 마음을 괴롭혔다.1. 내가 진짜 하고 싶은 일은 '방산/모빌리티' 와 같은 'Ondevice AI / Dependable System' 개발이다.2. 하지만 위 분야는 '석사' 또는 '전자/AI 관련학위' 가 필요한 소위 고학력자들을 위한 도메인이다.결국 다른 길을 찾고 있었는데..그러던 중 SSAFY 가 Embedded 트랙을 모집한다는 사실을 알게 되었고, "SSAFY 라면..!!" 이라는 생각에 냅다 지원했더랬다. 1. 대외비많은 것이 대외비라 알음알음 다들 알고있는 정보선에서, 검색하면 쉽게 나오는 정보선에서만..

SSAFY 2024.06.19

[알고리즘] 베스트앨범 프로그래머스 Lv3. 파이썬

코드: https://github.com/ddalkyTokky/Algorithm_test/blob/main/Python3/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/3/42579.%E2%80%85%EB%B2%A0%EC%8A%A4%ED%8A%B8%EC%95%A8%EB%B2%94/%EB%B2%A0%EC%8A%A4%ED%8A%B8%EC%95%A8%EB%B2%94.py 1. 정렬해시는 모르곘고.. 그냥 정렬하면 될 것 같았고 실제로도 정렬해서 풀었다.. 뭔가 다른 풀이가 있나 찾아봐야곘다. 2. 최종 코드그냥, 집계를 가장 먼저 냈다.statics = [음악 번호, 장르(string), 해당 음악이 속한 장르의 총 재생 횟수, 해당 곡의 재생 횟수] 람다식..

[알고리즘] 부대복귀 프로그래머스 Lv3. 파이썬

코드: Algorithm_test/Python3/프로그래머스/3/132266. 부대복귀/부대복귀.py at main · ddalkyTokky/Algorithm_test · GitHub 1. BFS문제만 봐서는 정말 간단한 BFS, DFS 문제이다. 2. 역순 BFS그런데 이제 역순이었다.. Source를 순회하면서 Source => Destination 의 경로를 찾으려면 For Loop 을 N만큼 순회해야한다는 얘기가 된다. 이를 막기 위해, 아래 3가지를 수정했다.1. destination에서 출발해서 거리를 측정할것.2. visited를 list가 아닌 dictionary로 선언3. visited의 key는 각 노드, value는 destination까지의 거리 3. 최종 코드def solution..

[서버 개발] @Transactional 과 LazyInitializationException

0. 코드https://github.com/Kids-of-StrawberryRabbit/NewsFeed/blob/dev-0.0.0/src/main/kotlin/com/noreabang/strawberryrabbit/domain/feed/service/FeedService.kt#L421. 에러 상황피드에 딸린 댓글 목록을 가져오는 과정에서 해당 에러가 발생했다.1-1. FeedService.ktfun getFeedResponseById(id: Long): FeedDetailResponse { val feed = feedRepository.findByIdOrNull(id) ?: throw ModelNotFoundException("Feed", id) return feed.toDetailRespon..

서버 개발 2024.05.29

[스파르타 코딩클럽] TODO 서버 로그인 기능

0. 코드https://github.com/ddalkyTokky/KotlinSpring_TODO_Backend/tree/deploy_0.0.0 1. Spring Security + JWT처음에는 으레 그러는 것처럼 Spring Security 와 JWT를 결합해서 구현하려 헀다. 하지만 여기에는 치명적인 문제 두 가지가 있었다!! Spring Security 가 짱 어려움.. 사실상 보안공격과 실제 Spring Framwork 단위에서의 작동구조를 알아야 하는데, 그 양이 하루이틀만에 이해하고 사용할 수 있는 양이 아니다..Spring Security 6.1 부터 deprecated 된 함수가 많아 인터넷 코드의 대부분이 쓸모 없음.. 결국 직접 유사JWT를 구축하기로 했다. 2. sha256그런데 결국..

[알고리즘] 연속 펄스 부분 수열의 합 - 161988

코드: https://github.com/ddalkyTokky/Algorithm_test/tree/main/Python3/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/3/161988.%E2%80%85%EC%97%B0%EC%86%8D%E2%80%85%ED%8E%84%EC%8A%A4%E2%80%85%EB%B6%80%EB%B6%84%E2%80%85%EC%88%98%EC%97%B4%EC%9D%98%E2%80%85%ED%95%A91. 부분합옛날에 남의 풀이를 보고도 못 풀었던 문제다...근데 지금 다시 보니까 이딴걸 왜 못풀었지..? 라는 자괴감이 몰려온다.. 부분합에 대한 원리만 알면 간단하다.딱 두번만 주어진 문자열을 순회하면 된다! 첫번째는 순회는 [1,..

[Kotlin] Singleton 디자인 패턴 토막글 (왜 static 이 아닌 object 인가?)

1. SingletonIn software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to a singular instance.소프트웨어 공학에서, 싱글톤 패턴이란 한 클래스의 인스턴스화를 단 하나의 인스턴스로 규제하는 소프트웨어 디자인 패턴이다. 위는 싱글톤 디자인 패턴의 위키피디아 정의이다. 쉽게 말해, 하나의 클래스는 하나의 인스턴스만 가져야 하는 것이 싱글톤 패턴이라는 거다. 2. Java Static그럼 우리 이번에는 위 관점에서, 아래 코드를 보고 Java 의 Static 키워드는 과연 Singleton 패턴에 부합하는지 생각해보자.class E..

코틀린 언어 2024.05.21

[알고리즘] 인사고과 프로그래머스 Lv.3 파이썬

코드: Algorithm_test/Python3/프로그래머스/3/152995. 인사고과/인사고과.py at main · ddalkyTokky/Algorithm_test · GitHub1. 정렬하자 자신보다 두 수의 합이 더 큰 친구들의 수를 세서 +1 을 하면 자신의 순위이다.  가장 먼저 들었던 생각은 정렬하자. 였다. 중간에 사실 스택을 써야하나? 라는 생각에 코드가 조금 꼬이긴 했는데, 결과적으론 잘 동작한다. (개념적으론 크게 다르지 않은 아이디어 였어서 작동하는거다. 고쳐야하긴 한다.)2. 앞 수 기준으로만 정렬그런데, 인센티브의 후보가 아닐 수 있는건, 나뿐만이 아니다. 다른 사람도 후보에서 탈락 되는 경우의 수가 있다. 1, 나를 제외한 나머지들을 앞 수 기준으로 정렬해서 뒷수만 비교해 나간..

[알고리즘] 호텔대실 프로그래머스 Lv.2 파이썬

코드: Algorithm_test/Python3/프로그래머스/2/155651. 호텔 대실 at main · ddalkyTokky/Algorithm_test · GitHub1. 큐를 활용하자가장 먼저 들었던 생각은 큐를 활용해서, 최대 큐의 크기를 정답으로 내놓으면 된다였다. 예를들어, 예약 시간이 a, b, c, d, e 순으로 있다고 해보자. (시작 시간 기준)수행 순서큐 상태a 가 큐에 들어간다.[a]b 들어가기 전, b 의 시작 시간 기준으로 큐 안에 있는 녀석들중 대실 시간이 끝난 녀석이 있는지 확인한다. (정리하는 시간까지 +10분) a의 시간이 아직 안 끝났다면, [a]a의 시간이 끝났다면, []b 를 넣는다.a의 시간이 아직 안 끝났다면, [a, b]a의 시간이 끝났다면, [b]c 도 마찬가..

[Kotlin] Property 토막글 (Spring boot Setter에 관한 고찰)

1. Kotlin 만의 특이한 생성자 선언Kotlin 에서는 아래와 같이 소괄호 안에, 즉 하나의 생성자 패턴으로써 프로퍼티를 파라미터로 받음과 동시에, 선언할 수 있다. 문제는!! 이렇게 선언된 프로퍼티들이 그냥 선언만 되고 끝나는 것이 아니라, 자동으로 Getter 와 Setter 를 할당 받는다는 데에 있다. (물론 val 로 선언된다면, Setter는 할당받지 않는다.)@Entityclass Reply ( @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") var member: Member? = null @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "t..

코틀린 언어 2024.05.17