전체 글 19

[서버 개발] NAS 구축 (Unbuntu + MobaXterm)

0. 내 셋팅 환경NAS: Unbuntu20.04 Desktop (removed Desktop gui)외부 접속 환경: MobaXterm (ssh + sftp)1. 포트 열기 (포트포워딩 + 방화벽)1-1. 포트포워딩본 포스트가 포트포워딩을 설명하기 위한 글은 아니기에, 간략한 소개만 할것이다. 포트포워딩의 개념이 궁금한 사람들은 다른 블로그를 보자.난 집 대부분의 네트워크가 iptime을 지나고 있었고, Ubuntu도 예외는 아니었다. 일단 가장 먼저 아래 사진들에서 보이는 것처럼 본인의 공공 IP 와, 미니PC의 사설IP 주소를 알아야한다. (빨간색부분)그 다음으론, 포트포워드 규칙을 설정해야한다.외부 포트와 내부포트 모두 맘대로 정하면 된다. 헷갈린다면 모든 포트를 같게 설정해도 상관없다.요약하자면..

서버 개발 2024.10.01

[SSAFY 임베디드 C] int 암시적 형변환

1. 암시적 int 형변환 c89/90 표준사진을 누르면 c99 공식 문서로 갈 수 있다. 옛날 옛적 c89/90, c95 까지는 암시적 형변환이 가능했다!! (int, 전역변수 한정) 문법은 아래와 같다.#include a = 10;int main(){ printf("%d\n", a);}실제로 위 코드를 GCC 컴파일러로 실행해 보면 Warning 만 뜰뿐, 컴파일도, 실행도 잘만 되는걸 알 수 있다.2. GCC 컴파일 시 컴파일러 버전을 셋팅하기참고로 GCC는 컴파일러 버전을 명시할 수 있다. 그래서 이번엔 컴파일러 버전을 명시해보기로 했다. 참고로 c95는 안된다. -std=cxx 옵션을 붙이면 된다.셋 다 전부 똑같은 컴파일러로 봐도 무방하고, 실제로 셋 다 모두 컴파일 및 실행에 문..

SSAFY 2024.09.28

[SSAFY 임베디드 C] 비트 필드 연산 (Eclipse vs Ubuntu)

1. 비트필드 연산이란?비트 필드 연산이란, 하나의 변수안에서도 그 안의 내용을 비트단위로 쪼개서 쓸 수 있는 연산이다.#include #include union UNIO{ uint8_t data; struct { uint8_t a: 1; uint8_t b: 2; uint8_t c: 5; };} u1;int main(){ u1.data = 87; printf("a: %u\n", u1.a); printf("b: %u\n", u1.b); printf("c: %u\n", u1.c);}DEC: 87BIN 최종 DEC 결과값c, b, a 순으로 쪼..

SSAFY 2024.09.28

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

0. 들어가기 전에..나는 원래 Kotlin & Spring Boot 내일배움캠프를 듣고 있었다. 서버 개발자로서의 취업도 염두했지만, 진짜 이유는 따로 있었다.1. 나는 방산/모빌리티 분야 취업을 희망한다.2. C/C++ 임베디드 를 해야 관련 Job Opertunity가 많을 것이다.3. 임베디드도 네트워크화가 진행되고 있다.4. 서버도 알아둬서 나쁠게 없다..!!결국 C/C++ 임베디드 관련 교육을 찾고 있었다그러던 중 SSAFY 가 Embedded 트랙을 모집한다는 사실을 알게 되었고, "SSAFY 라면..!!" 이라는 생각에 냅다 지원했더랬다. 1. 대외비많은 것이 대외비라 알음알음 다들 알고있는 정보선에서, 검색하면 쉽게 나오는 정보선에서만 언급하려고 한다. 2. 12기 선발 일정 (전공)솔직..

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