분류 전체보기 108

[SCALA] 스칼라란?

scala 코드를 분석하는 업무를 수행하며 스칼라 코드에 대해 처음 알게 되었다. scala는 java보다 늦게 생겨나, 오래 전부터 인기를 끌어온 java보다 유명하지 않지만 최근 떠오르고 있는 함수형 프로그래밍을 접목하되, 객체 지향 프로그래밍까지 같이 챙겨가면서 Java와의 호환성도 좋아 비교적 최근에 많은 호응을 얻었다고 한다. 이미 자리 잡은 개발자들에게 스칼라가 왜 매력있는 언어였는지, 또 Java와는 어떤 연관성이 있는지 정리해보겠다. Scala의 장점 1. 간결함, 그리고 표현력 스칼라는 함수형 프로그래밍을 지원하여 고전 Java에 비해 더 간결하고 표현력 있는 코드를 작성할 수 있게 해준다. 예를 들면 순회 컬렉션 처리에서의 람다 함수와 고차 함수를 사용하면 복잡한 코드를 더 간결하게 작..

프로그래밍 2024.07.12

[함께 자라기 : 애자일로 가는 길] 인상 깊었던 문구들

"이미 갖고 있는 것들을 하이퍼링크로 촘촘히 연결하라. 노드 간 이동속도가 빨라질 수 있도록 고속도로를 놔라" - 39p 핵심 메시지독립적으로 배움을 더하지말고, 학습을 서로 이어 복리적인 성장을 통해 효율적으로 배워라 왜 인상이 깊었는가?이 구절을 보며 체계적인 성장을 지향하는 사람들에게 경외심을 느꼈다 내게 의미하는 바는?이 구절을 보며 지난 시간동안 열심히 역량 성장을 위해 노력해 온 경험에서 서로 다른 기간과 분야에서 학습한 내용들을 각각에 집중했었다고 스스로의 상태를 확인할 수 있었다.   " A작업은 종사 직무가 원래 하는 일, B작업은 A작업을 개선하는 일, C작업은 B작업을 개선하는 일 " - 34p 핵심 메시지A를 개선하기 위해 DevOps와 같은 B작업이 도입되고,C작업은 DevOps팀..

회고 2024.07.11

[TIL] 객체 지향 프로그래밍(OOP)이란 ? (feat. 객체지향 5원칙 - SOLID)

지금까지 비즈니스 코드를 유지보수한 경험이 없어, 객체 지향 프로그래밍에 대한 필요성을 느끼지 못했다. 집중적으로 파고 들면서 객체 지향 프로그래밍을 학습한 적도 없어서, 대충 뭔지 한마디로 정의할 수는 있겠지만 정확히는 잘 모르겠다. 그래서 궁금해서 집중적으로 공부해보았다. 객체 지향 프로그래밍(OOP)이란? OOP = Object-Oriented Programming 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그램 내의 데이터를 추상화한 뒤, 상태와 행위를 가지는 객체로 선언 후 사용하는 프로그래밍이다. 과거에는 데이터의 시간 절차 순으로 프로그래밍하는 절차 지향 프로그래밍을 사용했지만, 코드의 양이 많아지면서 코드의 유지 보수를 위해 객체 지향 프로그래밍을 사용하게 되었다. ..

프로그래밍 2024.03.30

[TIL] 프로세스와 스레드의 차이

오늘 이력서 작성 중, 같이 교육받았던 형님이 Slack에 메시지를 올렸다. CS 기술 면접에서 첫 질문으로 프로세스와 스레드의 차이점에 대해 설명하라는 질문을 받았다고 하셨다. 그러고 곰곰히 생각해봤다. 나는 프로세스랑 스레드의 차이점을 확실히 이해하고 설명할 수 있나? 12월에 pintOS 운영체제를 학습하면서 그토록 스레드와 프로세스를 가지고 놀면서 마스터했다고 생각했지만, 막상 설명하려고 생각해보니 명확히 설명하지 못할 것 같았다. 그래서 ! 오늘 다시 프로세스와 스레드의 정의를 바로 지난달에 발표를 마친 let's Note 프로젝트에 적용하여 한번 이해해보는 시간을 가져보려고 한다. 프로세스란 ? 프로세스는 죽어있는 프로그램에 생명이 부여되어 실행되고 있는 상태를 말한다는 운영체제 속 문구가 생..

Java 2024.03.24

[TIL] WEB RTC 구현 기록 - FE

나만무 프로젝트를 진행하면서 webRTC를 이용하여 음성채팅 기능을 구현하기 위해 공부했다. 프로젝트에서 백엔드 개발을 담당했지만, webRTC를 활용하여 음성채팅을 기능화하기 위해 프론트 작성도 담당하기 위해 따로 공부했다. 리액트에서 발생하는 버그들을 고치기 위해 javascript에서의 리액트 마운트 순서를 공부했고, 리액트 훅의 사용법과 상하위 컴포넌트간의 관계에 대해 공부했다. 이 기능이 가능할 수 있게 해주는 원리에 대해 머리속에 복잡한 내용을 A4용지에 쓰던걸 여기에 적도록 하겠다. WEB RTC 란? WEBRTC는 기본적으로 서버가 중간에 개입하지 않고 peerTopeer로 연결하여 음성 채팅과 같은 스트림 전송을 수행할 수 있게 한다. 이를 위해선 Peer - Peer가 서로의 웹 세팅,..

Jungle 2024.02.29

[TIL] AWS S3를 이용하여 Spring JPA에 미디어 API 구현하기

요근래 B형 독감에 걸려서 3일간 공부를 못했다. 나만무 프로젝트 기간의 시작이다 보니 3일동안의 공백이 너무 컸다. 이제 다시 빡세게 좀 마음을 다잡고 프젝 기간에 불태워보려고 한다. 우리 나만무 프로젝트가 미디어 파일을 업로드하고 로드해야하는 플랫폼이다 보니 S3를 활용해보려 한다. Spring JPA에서 어떻게 AWS S3를 활용할 수 있는지 알아보자. AWS S3는 5GB의 용량까지 프리 티어로 사용할 수 있다. 따라서 해당 프리 티어 S3를 사용해보자. S3에서 버킷을 생성하면 보안 키를 생성해줄 것이다. 그 이후에 우리 project에서 AWS SDK를 지원하는 dependency를 추가해준다. software.amazon.awssdk s3 org.springframework.boot spri..

Java 2024.01.20

MP3 음성 파일의 압축 방법

MP3 : MP3는 가장 대표적인 압축 샘플링 사운드 파일이다. MP3는 동영상과 오디오 압축 기술에 대한 표준인 MPEG(Moving Picture Experts Group) 표준의 일부분으로 정확한 명칭은 MPEG Audio Layer 3이다. MPEG Audio Layer 1, Layer2도 있다. Layer 1은 압축률이 1/4정도 되고 Layer2는 1/6 ~ 1/8 정도 된다. MP3 파일은 CD 음질을 유지하면서도 1/10 ~ 1/12의 높은 압축률을 가진다는 것이 가장 큰 특징이다. MP3 파일은 대략 1분당 1메가의 크기를 필요로 하는데 이처럼 높은 압축률 때문에 인터넷을 통해 급속도로 보급될 수 있었다. 파일 크기가 작기 때문에 적용 용량의 메모리에도 다수의 노래를 저장할 수 있게 되어..

Jungle 2024.01.13

[TIL] Spring Security에 JWT 필터 추가하기

오늘 포스팅에서는 spring security 모듈을 적용하고 그 안에 JWT 인증 필터를 추가하여 JWT토큰으로 인증을 구현해 본 내용을 포스팅하겠습니다. spring security는 front-end 팀원분과 개인 공부를 위해 기본적인 crud와 회원가입 및 로그인 인증이 구현된 간단한 게시물 웹사이트를 만들기 위해 공부했습니다. Spring Security spring security 디펜던시를 추가해보면 6.1 버전이 23년 6월에 종료되어서 새로 코드에 대해 이해를 해야 했습니다. 먼저 spring security 자체가 어떻게 작동하는지 공부하고 이를 어떻게 커스터마이징 해야 할지부터 고민했습니다. spring security 디펜던시를 적용하지 않더라도 spring framework 자체에..

Java 2024.01.12

Spring-boot 빌드 오류 : java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.cfg.DatatypeFeature

끔찍한 오류를 체험하고 식은 땀을 흘리면서 해결했음. 원래 되던 spring project가 jar를 배포하기 위해 빌드를 초기화했더니 갑자기 되던 실행이 로컬에서도 안되던 것. 근데 발생한 오류가 바로 Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.cfg.DatatypeFeature 이 오류였다. 갑자기 발생한 'Class 없어' 오류에 너무 당황하여 찾아보니까, jackson 종속성은 spring-boot 자체에 내포되어 있어서 의존성을 따로 추가하면 conflict가 발생한다는 것. 며칠 전에 objectMapper 로직을 작성하기 위해 dependency를 추가했었는데, 이 objectMapper가 jacks..

Java 2024.01.07

[TIL] JAVA : @Bean, IoC 컨테이너, 의존성 주입

어제 하루종일 CRUD 노가다를 마무리하고 JWT를 저녁에 입문했는데, 애들 장난이라고 생각하고 공부하면 절대 스프링의 제작 의도대로 Spring security 디펜던시를 사용할 수 없을 것 같다고 생각됬다. 오늘부터는 정말 약한 의지가 아니라 뇌빼고 모르는거 다 찾아본다는 마인드로 security 정복에 나선다. 오늘 할일 1. @Bean 어노테이션의 의미는 무엇인가 ? 2. Filter Chain Froxy의 동작 방법 + HttpFilterChain의 내부 구조에 대해 이해하고 보안에 관한 원하는 코드 짜는 방법 공부하기 3. spring jpa 는 어떻게 DB 서버와 통신하는가? @Bean 어노테이션의 의미 spring security가 바뀌면서 지원해주던 config를 직접 개발자가 커스텀하여..

Java 2024.01.03