분류 전체보기 20

[SSAFY] 도커 이미지 생성 및 배포 방법

1. 이미지를 만들기 전에…도커 이미지를 생성하기 위해서는 기본적으로 두 가지가 필요합니다.a. 베이스 이미지도커 이미지도 기본적으로 하나의 실행 환경입니다.이는 도커 이미지도, 베이스가 되는 OS, 라이브러리, 패키지등이 필요하다는 것을 의미합니다. 이에 따라, 어떤 OS 혹은 기본 설치된 라이브러리 밑에서 실행될 것인지, 기본이 되는 이미지를 베이스 이미지라 지칭합니다. 여기서는 node를 사용합니다.b. Dockerfile도커 이미지를 빌드할 때 실행될 명령어의 묶음입니다.스크립트 파일과 유사하다고 볼 수 있습니다.2. 하나의 폴더 안에 모든 코드 옮기기3. Dockerfile 만들기Dockerfile (NodeJS 예시)FROM {베이스 이미지명}WORKDIR {작업 경로명}COPY ./packa..

SSAFY 2024.11.14

[서버 개발] 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,..