분류 전체보기
-
[일일회고] Python Platform으로 OS찾아내기소프트웨어 엔지니어링/Daily Learning Series 2023. 12. 16. 11:25
오늘의 문제 요즘 AWS Quicksight으로 대시보드를 만들고 있다. 파이썬으로 AWS Athena에 쿼리를 날리고, 그 결과를 가공해 S3버켓으로 올린다. 그러면 그 결과를 Quicksight DataSet으로 받아서 대시보드를 만드는 것이다. 그래서 이번 한 주간 (잘 못하는...) 파이썬으로 열심히 스크립트를 짰는데, 문제가 생겼다. 첫번째는 이 스크립트를 매일 실행하려면 AWS에 올려야되는데, 그 때는 credential을 인스턴스의 것으로 쓰고 싶고, 로컬 환경에서 테스팅 할 때는 다른 라이브러리에서 credential을 받아오고 싶다. 안그러면 테스팅 할 때 마다 체크해야하고... 코드를 예쁘게 짠게 아니라 여기저기 실수하게된다. 그래서 파이썬에서 플랫폼을 확인 할 수 있는지 알아보았다. ..
-
[일일회고] Athena Presto CASE 문, String Split함수소프트웨어 엔지니어링/Daily Learning Series 2023. 12. 13. 14:19
회고의 계절이 돌아왔다. 그래서 회고를 해보려는데 기억이 안난다. 일년간 뭘 배웠는지, 뭘 했는지 정말 기억이 나지 않는다. 분명히 새로운 것을 많이 배웠는데 여러가지 문제를 많이 해결했는데, 그 당시 문제 해결 할 때만 반짝 검색해서 쓰고 그 다음에는 기억이 안나서 또 검색하고 있다. 그래서 앞으로 배운게 있으면 짧게라도 정리해서 올려볼까 생각중이다. 기술 문제가 될 수도 있고, 프로세스나 사람간의 문제가 될 수도 있다. 오늘의 문제 요즘 데이터 분석 및 시각화를 하느라 Athena Presto 쿼리를 짜고 있다. 그 중 오늘 짠 쿼리에서, 문자열(스트링) 컬럼의 일부 정보를 다른 대체문자로 변경해야 하는 문제가 있었다. 예를들어 문자열은 ‘id-type-property-something_else’ 이..
-
개발자가 이해하는 Large Language Model소프트웨어 엔지니어링 2023. 10. 23. 07:21
LLM(Large Language Model) 이란? 주의! 나는 인공지능 전문가가 아니다. 그냥 여기저기서 주워듣고 배운 것을 정리해서 쓰는 것일 뿐이다. 세상이 LLM으로 핫하다. LLM을 기반으로 한 스타트업도 우후죽순으로 생겨나고 있다. 우리 같은 보통 사람들에게는 생소한 단어일 수도 있다. LLM. Large Language Model. 우리에게는 ChatGPT 또는 Generative AI와 같은 단어가 더 익숙하다. 맥킨지에서는 매일 Generative AI에 대한 뉴스레터를 보낸다. 책도 많이 나온다, AI 어쩌고, 챗GPT 저쩌고, 앞으로 글 쓰는 직업은 없어질 것이다, 그림을 그리는 직업도 사라질 것이다, 이러쿵저러쿵 말이 많다. Large Language Model, 그래서 뭘까? L..
-
3. 자바 조건문 (2) switch-case자바(Java) 강의 2020. 3. 16. 14:03
Switch case는 조건에 따라 코드를 실행한다는 점에 있어서 if-else와 매우 유사하다. 만약 if-else를 모른다면 if-else를 먼저 학습한 후 switch-case를 공부하는 것을 추천한다.예상 독자자바를 배우고 싶은 누구나JDK와 IDE를 설치한 자바 학습자. ( 1. 자바 설치 및 개발환경 설정 )char를 공부한 자바 학습자. ( 2. 자바 변수와 자료형 (1) char )boolean을 공부한 자바 학습자. ( 2. 자바 변수와 자료형 (2) boolean )byte, short, int, long을 공부한 자바 학습자. ( 2. 자바 변수와 자료형 (3) byte, short, int, long )float과 double을 공부한 자바 학습자. ( 2. 자바 변수와 자료형 (4..
-
Call by value vs Call by reference소프트웨어 엔지니어링 2019. 12. 1. 17:09
이번 포스트에서는 메서드 파라미터의 평가 전략(Evaluation Strategy)중 대표적으로 소개되는 Call by value와 Call by reference에 대해 설명하도록 한다. Introduction독자에 대한 몇 가지 가정1. 이 글의 독자는 Java, C, C++를 어느정도 알고 있거나, 새 언어를 읽는데 큰 어려움이 없다. 2. 이 글의 독자는 포인터 *, &에 대해 약간 알고있다. (많이는 몰라도 됨..)3. 독자의 이해를 최대한 돕기 위해 스택(Stack)과 힙(Heap)을 구분하지 않는다. 본인이 컴퓨터 아키텍쳐에 대해 잘 안다면 아래 내용중에 무엇이 스택에 생성되고 무엇이 힙에 생성되는지 스스로 찾아낼 수 있을 것이다.4. 설명을 최대한 단순하게 하기 위해 레퍼런스와 주소를 동일..
-
가비지 컬렉터(Garbage Collector)와 Mark & Sweep자바(Java) 강의 2019. 11. 26. 15:58
이번 포스트에서는 JVM(Java Virtual Machine)의 메모리 관리방법에 대해서 약간 설명하도록 한다. JVM의 메모리 관리방법을 알기 위해서는 JVM이 무엇인지에 대해 먼저 알아야한다. 따라서 JVM에 대해 간단히 설명하고, JVM이 메모리를 관리하는 방법인 Garbage Collector와 Mark & Sweep 알고리즘에 대해 설명하도록 한다. 초심자를 위한 글이기 때문에 가비지컬렉터의 기본 원리만 설명하고 자바 메모리 모델에 대해서는 다른 포스트에서 다루도록 하겠다.JVM(Java Virtual Machine)이란?JVM은 프로그램이다. 이 프로그램에 자바 언어를 컴파일한 *.class파일을 인풋으로 줘 실행하면 JVM 프로그램이 실행하면서 입력받은 .class파일을 실행한다. $ ja..
-
클라우드(Cloud)란?소프트웨어 엔지니어링 2019. 9. 2. 14:17
이 포스트에서는 클라우드가 무엇인지 설명하고 클라우드 서비스와 클라우드 컴퓨팅이 무엇인지에 대해 간단하게 설명하도록 한다. 클라우드(Cloud)란? 클라우드란 인터넷이다. 클라우드란 인터넷을 은유적으로 표현하는 말이다.클라우드 서비스(Cloud Service)란?클라우드 서비스란 클라우드, 즉 인터넷을 이용해 제공되는 서비스를 말한다. 예를 들어서 노트 어플을 생각해보자. 기존의 노트 어플(notepad)는 내 컴퓨터에 깔려있다. 노트패드에 노트를 작성하고 저장하면 어디에 저장되는가? 내 컴퓨터에 저장된다. 이 과정은 인터넷 연결이 전혀 필요 없다. 이제 요즘 사람들이 많이 쓰는 에버노트나 노션을 생각해보자. 에버노트(evernote)나 노션(notion)에 노트를 작성하고 저장하면 어디에 저장되는가? ..
-
JavaBean이란?자바(Java) 강의 2019. 9. 2. 06:07
JavaBean이라는 말을 많이 들어 보았을 것이다. 예를들어 스프링을 사용하는 경우 @Bean이라는 어노테이션을 사용해 봤다던가, XML에 아래와 같은 선언을 해본적이 있을 것이다. 그렇다면 JavaBean이란 정확히 무엇인가? JavaBean JavaBean은 JavaBean API Specification에 따른 Standard이다. 여러분은 클래스이름은 CapitalCase로, 필드나 메서드 이름은 camelCase로 쓰라는 말을 많이 들어 봤을 것이다. 사실 클래스 이름을 Capital Case가 아닌 다른 형식을 사용한다고 누가 잡아가는것은 아니다. 하지만 개발자들 사이에서는 보통 이런 규칙을 지킨다. 이를 Standard라고 한다. JavaBean이란, 3가지 규칙을 지키는 클래스이다.모든 ..