티스토리

블로그 이전합니다.
검색하기

블로그 홈

블로그 이전합니다.

jaynamm.tistory.com/m

공부하고 정리하는 블로그

구독자
22
방명록 방문하기
공지 제이로그 모두보기
반응형

주요 글 목록

  • 티스토리에서 Github 블로그로 이전하기 티스토리 블로그에 처음으로 글을 쓴 지 벌써 5년이 지났다.처음 글이 2019년 6월 30일 이다.ㅎㅎ 알고리즘 공부를 하면서 문제를 풀고 이해한 내용을 정리하자는 계기로 시작하게 되었는데 어느 덧 5년이란 시간이 흐르게 되었다.이 블로그에 취준생 시기와 여러 면접 기록들과 공부한 내용들이 기록되어있는데 이제는 티스토리를 놓아주어야할 때가 온 것 같다. 블로그 이전을 결심한 계기처음에는 네이버 블로그에서 글을 썼었는데 네이버에서 티스토리 블로그로 옮긴 이유는 다음과 같았다.구글에서 검색했을 때 노출이 잘 된다.구글 에드센스를 활용해서 작고 귀여운 수익을 얻을 수 있다. (기간이 길게 걸리지만 나름 용돈벌이가 된다.)UI 도 간단하고 여러 기능들도 많다.에디터가 깔끔하고 작성이 편하다. 이러한 이유에서 티.. 공감수 0 댓글수 0 2024. 7. 8.
  • 페이히어 최종 면접, 컬처 핏 인터뷰 후기 지난 페이히어 데이터 엔지니어에 지원했고 직무 면접에서 합격해서 최종면접을 보게 되었다.그 당시 일주일 내에 면접 결과를 알려주신다고 하셨는데 정확히 일주일이 지난 후에야 결과를 알려주셔서 떨어졌다고 생각했었는데 다행히 합격 소식을 받게 되어 최종 면접을 보게 되었다.  그렇게 최종 면접을 준비하게 되었다. 이번 면접에서는 컬처 핏에 대한 면접이었고 회사와 맞는지에 대한 내용이라고 생각이 되어 준비를 많이 하지 않고 있는 그대로의 내 모습을 보여주자는 생각을 많이 했던 것 같다. 그렇게 예정되어있던 최종 면접일이 다가오고 면접을 보게 되었다.면접 당일이 되어 페이히어에서 최종 면접을 보게된 분들에게 한해 더치커피를 선물로 주신다고 하셔서 기분 좋게 받고 면접을 대기했다.다른 기업에서도 면접을 보았지만 페.. 공감수 4 댓글수 0 2024. 4. 28.
  • 페이히어 직무 인터뷰 후기 지금의 내가 데이터 엔지니어로서 어떤 위치에 있고 내 실력이 어느 정도 되는지 확인하고 싶었다. 그래서 어떻게 나의 객관적인 실력을 체크할 수 있을까 하는 생각에 나는 면접을 보는 방법을 선택했다. 면접을 보게 된다면 내가 지금까지 한 일에 대해서 질문을 받고 답을 할 수 있는 자리가 생기기 때문에 더할 나위 없이 좋은 경험이 될 것이라고 생각했다. 그래서 여러 기업에 서류를 제출하고 기다리던 와중에 '페이히어' 라는 기업에 서류를 합격할 수 있었다. 그렇게 서류를 합격 소식을 듣고나서 과제 전형이 있어 과제를 진행하게 되었다. 과제 전형은 서류 합격 이후 과제 전형 내용을 전달받은 날로부터 3일 전에 제출해야했다. 과제 내용을 간단하게 설명하자면 효율적인 결과를 도출하기 위한 과제 하나와 주어진 예제에.. 공감수 1 댓글수 0 2024. 4. 6.
  • Postgresql Idle in transaction 다음 명령어를 통해 postgresql 의 활성화되어있는 프로스를 확인해보면 Idle in transaction 상태가 보인다. select * from pg_stat_activity; 찾아보니 이런 경우는 postgresql 에 transaction 이 잡혀있지만 아무런 동작도 하지 않으면 idle in transaction 상태가 된다고 한다. 이런 경우가 많이 발생하게 되면 connection 은 잡고있지만 아무것도 하지 않게 되어 리소스가 낭비된다. 이러한 문제를 해결하는 방법 중 하나는 다음과 같이 수동으로 해당 프로세스의 connection 을 terminate 해주어야 한다. terminate 를 할 때에는 process id 인 pid 를 가져와 terminate 를 실행하면 된다. sel.. 공감수 0 댓글수 1 2024. 3. 14.
  • Pyspark Window function Pyspark 에서 Window 함수를 사용해 rank 나 row number 등과 같은 결과를 계산할 수 있다. 직접 사용해보았지만 제대로 이해하고 사용하고 있는 것 같지 않아서 정리해보려고 한다. Window Functions Pyspark window 함수는 frame 과 partition 과 같은 행(row) 의 그룹에서 입력된 모든 row 를 하나의 값으로 반환한다. Window 함수의 핵심은 여러 개의 row 를 하나의 값으로 사용한다는 것이다. Pyspark window 함수는 3가지 종류의 함수로 구분된다고 한다. Ranking Functions Analytic Functions Aggregate Functions 아래의 테이블은 Window Functions 를 정리한 함수들이다. 참고하.. 공감수 0 댓글수 0 2024. 3. 14.
  • 0. jekyll 초기 설정 및 준비 블로그에 글을 작성하면서 뭔가.. 나만의 wiki 를 한번 만들어볼까? 하는 생각에 그럼 github 블로그에 정리해보자! 라는 생각이 들어 github 블로그를 만들어봐야겠다는 생각이 들었다. 처음에는 테마를 받아서 적용시켜보려고 하는데 원하는 기능을 추가해주어야 했고 이럴거면 내가 원하는 테마에 맞게 블로그 테마를 만들어서 적용해보자는 생각이 들었고 그렇게 jekyll 을 사용해보자는 생각이 들었다. 그래서 이렇게 블로그를 만들기 위한 준비 단계를 정리해봤다. 추가) 만만치 않은 작업이 될 것 같아서.. 중간에 포기.. ㅎㅎㅎ 글을 정리하려다가 블로그 만드는데 시간이 더 들 것 같은.. ㅎㅎㅎ 사전 준비 ruby 설치하기 brew install ruby ruby 설치 결과 확인 $ ruby -v ru.. 공감수 0 댓글수 0 2024. 2. 25.
  • 메모리 단편화 (Memory Fragmentation) 메모리를 공부하면서 메모리 단편화에 대해서 알게 되었다. 그래서 추가적으로 메모리 단편화가 무엇인지 정리해보려고 한다. 메모리 단편화가 무엇인가 RAM 에서 메모리의 공간이 작은 조각으로 나누어져 사용가능한 메모리가 충분히 존재하지만 할당이 불가능한 상태를 메모리 단편화라고 한다. 메모리 단편화는 2가지로 구분할 수 있다. 내부 단편화 (Internal Fragmentation) 외부 단편화 (External Fragmentation) 내부 단편화 (Internal Fragmentation) 내부 단편화란 메모리를 할당할 때 OS 에서 할당한 메모리 공간보다 프로세스가 더 적은 공간을 사용해서 낭비되는 상태를 말한다. 예를 들어, 10MB 의 메모리 크기가 주어졌는데 실제 프로세스는 5MB 만 사용하는 .. 공감수 0 댓글수 0 2024. 2. 18.
  • 메모리 구조 (Memory Structure) 디스크에 저장되어있는 프로그램을 실행하게 되면 프로그램에 대하 정보를 읽어와 메모리에 로드하게 된다. 그럼 메모리에 어떻게 적재되고 어디에 적재되는가에 대해서 정리해보자. 먼저 메모리는 다음과 같이 4개의 영역으로 구분된다. 그럼 각 영역이 어떤 역할을 하는지 알아보자. 코드(Code) 영역 코드 영역에는 우리가 작성한 코드가 저장된다. 이때 컴파일이 완료된 상태의 코드(0과 1로 이루어진 기계어)가 할당된다. 예를 들어, 코드 내에 있는 함수나 조건문, 상수 와 같은 코드들이 컴파일되어 메모리에 할당된다. 따라서 CPU 가 작업을 수행할 때 코드 영역에 있는 명령어들을 가져가 실행하게 된다. 데이터(Data) 영역 데이터 영역에는 전역 변수(global) 와 정적 변수(static) 가 할당된다. ma.. 공감수 0 댓글수 0 2024. 2. 18.
  • Postgresql auto increment 적용하기 Mysql 에서는 auto_increment 라는 속성을 부여해주면 자동으로 증가하게 만들어줄 수 있다. Postgres 에서는 auto_increment 라는 속성을 부여할 수 없기 때문에 다른 방법을 통해서 증가하게 만들어주어야 한다. 그래서 postgres 의 auto increment 에는 어떤 방법들이 있는지 정리해보려고 한다. Sequence 객체를 사용해서 auto increment 하기 postgres 에는 Sequence 라고 하는 number generator 가 있다. 더 쉽게 말해서 순차적인 값을 생성해주는 객체라고 생각하면 된다. Sequence 는 다음과 같이 명령어를 통해 생성할 수 있다. CREATE SEQUENCE seq_user_id INCREMENT 1 START 1 M.. 공감수 0 댓글수 0 2024. 2. 16.
  • Spark explode() 함수 사용시 주의할 점 spark explode() 함수는 리스트 타입의 컬럼에서 각각의 element 를 하나의 row 로 펼쳐주는 기능을 한다. explode() 함수의 사용 방법에 대해서는 다음과 같이 이전에 정리해두었다. https://jaynamm.tistory.com/entry/Spark-explode-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-List-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EB%A6%AC%ED%95%98%EA%B8%B0 Spark explode() 사용해서 List 로 된 컬럼을 행으로 분리하기 Spark Dataframe 에 다음과 같이 리스트 형태로 들어간 컬럼이 있을 것이다. scala> val df = Seq(("Nam", List("A".. 공감수 0 댓글수 0 2024. 2. 11.
  • 프로그램과 프로세스의 차이 CS 를 다시 공부하면서 프로그램과 프로세스에 대해서 정확히 설명하지 못했고 (반성하자) 프로그램과 프로세스의 차이에 대해서 제대로 알고 있지 않다는 생각이 들어 제대로 이해하고자 공부한 내용을 정리해보려고 한다. 프로그램 (Program) 프로그램이란 흔히 소프트웨어라고 하는 애플리케이션들을 말한다 예를 들어, 카카오톡이나 계산기 등을 프로그램이라고 할 수 있다. 조금 더 자세하게 설명하자면 컴퓨터가 실행할 수 있는 명령의 집합이자 Disk 에 저장되는 정적인 엔티티라고 할 수 있다. 변함없이 디스크에 저장되어있기 때문에 정적이라고 표현한다. 프로세스 (Process) 프로세스란 프로그램의 실행을 의미한다. 따라서, 동적인 엔티티라고 할 수 있다. 프로세스는 프로그램이 실행될 때 운영 체제에 의해 생성.. 공감수 0 댓글수 0 2024. 2. 11.
  • airflow default_args error - Invalid arguments were: **kwargs: {'provide_context': False} 에러 발생 airlfow 를 사용하다가 아래와 같은 에러가 발생했다. airflow.exceptions.AirflowException: Invalid arguments were passed to _PythonDecoratedOperator (task_id: check_steps__1). Invalid arguments were: **kwargs: {'provide_context': False} 에러 내용은 Invalid arguments were: **kwargs: {'provide_context': False} 라는 내용으로 default_args 에 설정해준 provide_context 의 값이 False 되어있어서 발생한 에러로 보였다. 에러가 났을 때 dag default_args 의 내용은 다음.. 공감수 1 댓글수 0 2024. 2. 7.
  • airflow Default Arguments airflow 에서 DAG 를 생성할 때 사용되는 default arguments 에 대해서 정리해보려고 한다. Default Arguments default_args 에 대해서 이해하기 위해 airflow concept 에서 다음과 같이 확인할 수 있었다. https://airflow.apache.org/docs/apache-airflow/2.6.2/core-concepts/dags.html#default-arguments DAGs — Airflow Documentation airflow.apache.org 설명을 해석해보면, DAG 안에 있는 많은 Operator 들이 같은 설정을 해주는 경우가 있는데 모든 Operator 들에게 개별적으로 지정하는 대신 DAG 를 생성할 때 default_args .. 공감수 0 댓글수 0 2024. 2. 7.
  • airflow Dynamic Task Mapping airflow 를 사용하면서 하나의 task 안에서 여러 개의 작업이 수행될 때 각 작업의 상태를 확인하거나 모든 작업에 동일한 값을 넘겨주고 싶은 경우가 있다. 이럴 때 airflow 제공하는 것이 airflow Dynamic Task Mapping 이라는 기능이다. 이 기능은 airflow 2.3.0 버전에서 새롭게 추가된 기능이라고 한다. 이 기능 외에도 다양한 기능이 추가된 것으로 알고 있다. airflow 2.3.0 의 release note 는 아래에서 확인할 수 있다. https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html#airflow-2-3-0-2022-04-30 Release Notes — Airflow Docu.. 공감수 0 댓글수 0 2023. 12. 28.
  • aws cli error - AttributeError: module 'lib' has no attribute 'X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT' awscli 를 설치하고나서 aws --version 명령어를 통해 버전을 확인하려고 하니 다음과 같이 에러가 발생했다. $ aws --version Traceback (most recent call last): File "/opt/homebrew/bin/aws", line 19, in import awscli.clidriver File "/opt/homebrew/Cellar/awscli/2.13.38/libexec/lib/python3.11/site-packages/awscli/clidriver.py", line 21, in import botocore.session File "/opt/homebrew/Cellar/awscli/2.13.38/libexec/lib/python3.11/site-packag.. 공감수 1 댓글수 0 2023. 11. 25.
  • python urllib 사용해서 URL 다루어보기 python 으로 개발하면서 URL 을 다루게 되면서 어떻게 URL 내에서 path 만 가져와야하고 parameter 를 어떻게 가져와야하고 query string 은 어떻게 추가해야하는지에 대한 고민을 했던 적이 있다. 정말 단순하게 생각했을 때 URL 문자열 알에 들어있는 '/' 나 '?' 또는 '&' 등의 문자를 통해 split 해서 가져오면 되지 않을까? 하는 생각이 들었다. 하지만 python urllib 이라는 라이브러리를 통해서 정말 쉽게 URL 을 다룰 수 있다는 것을 알게 되었고 어떻게 사용할 수 있는지 정리해보려고 한다. 먼저 urllib 을 사용해보기 위해서 다음과 같이 URL 이 있다고 가정하고 사용해보려고 한다. 이 URL 은 내가 지금 블로그에 글을 쓰고 있는 페이지의 URL 이.. 공감수 0 댓글수 1 2023. 10. 21.
  • Postgresql 컬럼 기본값(default) 설정 PostgreSQL 에서 컬럼을 설정할 때 기본값(default) 에 대해서 정리해보려고 한다. 기본값 (default) 이란 PostgreSQL 에서 컬럼의 Default 는 해당 컬럼에 데이터를 삽입할 때 명시적으로 값을 제공하지 않을 때 사용되는 기본값을 정의하는데 사용된다. 쉽게 말해서 어떠한 동작을 하지 않을 때 기본적으로 Default 에 명시된 값이 들어간다는 말이다. 예를 들어 Default 는 다음과 같이 설정할 수 있다. CREATE TABLE test_table ( id serial PRIMARY KEY, name VARCHAR(255) DEFAULT '아무개' ); name 에 아무런 값을 등록하지 않으면 '아무개' 라는 값이 들어가게 된다. 그리고 Default 는 다음과 같이 수.. 공감수 1 댓글수 1 2023. 10. 5.
  • conda 기본 명령어 정리 conda 를 사용하면서 기본적인 명령어에 대해서 정리해두려고 한다. 사용하면서 알아두어야할 명령어들에 대해서도 추가할 예정이다. conda 가상환경 생성 conda create -n [가상환경 이름] python=[python version] # 예시 conda create -n venv python=3.11 conda 가상환경 activate & deactivate # 가상환경 활성화 (activate) conda activate [가상환경 이름] # 가상환경 비활성화 (deactivate) conda deactivate [가상환경 이름] conda python 특정 버전 설치 conda install python=[python version] # 예시 conda install python=3.11 공감수 0 댓글수 0 2023. 10. 3.
  • miniconda3 - CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. miniconda 를 설치하고나서 가상 환경을 생성하고 activate 하는 과정에서 다음과 같이 에러 메시지가 나왔다. CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'. To initialize your shell, run $ conda init Currently supported shells are: - bash - fish - tcsh - xonsh - zsh - powershell See 'conda init --help' for more information and options. IMPORTANT: You may need to close and restart your shell af.. 공감수 0 댓글수 0 2023. 10. 3.
  • Spark explode() 사용해서 List 로 된 컬럼을 행으로 분리하기 Spark Dataframe 에 다음과 같이 리스트 형태로 들어간 컬럼이 있을 것이다. scala> val df = Seq(("Nam", List("A", "B", "C", "D"))).toDF("name", "grade") df: org.apache.spark.sql.DataFrame = [name: string, grade: array] scala> df.show() +----+------------+ |name| grade| +----+------------+ | Nam|[A, B, C, D]| +----+------------+ 이런 경우에 grade 라는 컬럼을 각 row 로 분리할 필요가 생길수도 있다. 이때, explode() 함수를 통해서 리스트를 각 row 로 분리해줄 수 있다. 원하는 .. 공감수 1 댓글수 0 2023. 10. 1.
  • Spark User Defined Functions (UDFs) Spark 를 사용하다보면 UDFs 를 사용하여 새로운 column 을 만드는 경우가 많이 있다. 그래서 Spark UDFs 에 대해서 정확하게 무엇을 말하고 어떻게 사용하는 지에 대해서 정리해보려고 한다. 정리는 아래의 공식 문서를 참고해서 정리해보았다. https://spark.apache.org/docs/latest/sql-ref-functions-udf-scalar.html Scalar User Defined Functions (UDFs) - Spark 3.5.0 Documentation spark.apache.org Spark User-Defined Functions Spark User-Defined Functions (UDFs) 는 하나의 행에서 동작하는 사용자가 프로그래밍할 수 있는 루틴을 .. 공감수 0 댓글수 0 2023. 10. 1.
  • Spark multi process error in macOS macos 에서 pyspark 를 통해 디버깅을 하던 도중 다음과 같은 에러가 발생했다. To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). 23/09/27 10:36:44 WARN package: Truncated the string representation of a plan since it was too large. This behavior can be adjusted by setting 'spark.sql.debug.maxToStringFields'. objc[7304]: +[__NSCFConstantString initialize] may have been in progress in.. 공감수 0 댓글수 0 2023. 9. 27.
  • Spark JDBC Data Source Option spark 를 통해 JDBC 를 통해 데이터베이스의 테이블을 불러올 때 사용하는 옵션에 대해서 정리해보려고 한다. Spark JDBC To Other Databases 해당 내용은 야래의 spark 공식 문서에서 확인할 수 있다. https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html JDBC To Other Databases - Spark 3.5.0 Documentation spark.apache.org 문서를 보면 다음과 같이 설명이 되어있다. Spark SQL 은 JDBC 를 사용해서 다른 데이터베이스들로부터 데이터를 읽을 수 있는 data source 를 포함하고 있다. 이 기능은 JdbcRDD 를 사용하는 것보다 선호된다. 그 이유는 D.. 공감수 0 댓글수 0 2023. 9. 26.
  • spark config 리스트 정리 (spark.config.set) spark config 에 대해서 정리하려고 한다. 사용해본 config 설정이 많지는 않지만 여러 config 들에 대해서 계속해서 정리해나가야겠다. spark config setting 방법 # spark session 생성 spark = SparkSession.builder.appName("test").getOrCreate() # config 예시 spark.conf.set("spark.sql.inMemoryColumnarStorage.compressed", True) spark.conf.set("spark.sql.adaptive.enabled", True) spark.conf.set("spark.sql.adaptive.coalescePartitions.enabled", True) spark.co.. 공감수 0 댓글수 0 2023. 9. 17.
  • MacOS m1 openjdk 설치하기 맥북 m1 에서 openjdk 를 설치하는 과정에 대해서 정리해보려고 한다. brew openjdk 버전 확인 brew 를 통해 설치할 수 있는 openjdk 버전 확인하기 $ brew search openjdk ==> Formulae openjdk openjdk@11 openjdk@17 openjdk@8 openj9 openvdb brew 를 통해 openjdk 설치하기 나는 openjdk 17 버전을 설치하려고 한다. $ brew install openjdk@17 java version 확인하기 openjdk 를 설치하고나서 java 의 버전을 확인하려는데 다음과 같이 메시지가 나왔다. $ /usr/libexec/java_home -V The operation couldn’t be completed... 공감수 1 댓글수 0 2023. 9. 17.
  • LLM(Large Language Model) 이해하기 먼저 LM(Language Model, 언어 모델) 에 대해서 이해하고 넘어가려고 한다. 언어 모델이란 인간의 언어를 이해하고 생성하도록 훈련된 일종의 인공지능 모델이라고 한다. 주어진 단어 내에서 패턴이나 구조, 관계를 학습하여 텍스트 번역과 같은 좁은 AI 작업에서 주로 활용되었다고 한다. LLM(Large Language Model) 이란 그럼 LLM(Large Language Model) 이란 무엇일까? 해석 그대로 대량의 언어 모델이라고 볼 수 있다. LLM 은 딥러닝 알고리즘과 통계 모델링을 통해 자연어 처리 작업(Natural Language Processing, NLP)을 수행하는 데 사용한다고 한다. 이 모델은 사전에 대규모의 언어 데이터를 학습하여 문장 구조나 문법, 의미 등을 이해하고.. 공감수 0 댓글수 0 2023. 9. 17.
  • Git cherry pick 이란 git 을 사용하면서 cherry pick 이라는 것이 있다고 해서 정리해보려고 한다. git cherry pick 이란 git 에서 cherry-picking 이란 하나의 브랜치에서 단일 커밋을 가져와서 다른 브랜치에 추가하는 것을 말한다. 단일 커밋에 포함된 변경 사항이 필요하지만 해당 브랜치의 전체 내용을 다른 브랜치로 가져올 수 없거나 가져오고 싶지 않은 경우 내가 원하는 커밋을 가져올 수 있게 골라야 한다. 이 때 cherry-picking 을 통해 원하는 커밋을 가져와 다른 브랜치에 추가할 수 있도록 해준다. 예를 들어, 위의 사진과 같이 main 브랜치와 develop 브랜치가 있고 순서대로 커밋이 된다고 할 때 develop 브랜치의 B 커밋을 가져와 main 브랜치에 E 커밋 다음에 추가.. 공감수 0 댓글수 1 2023. 9. 10.
  • Gitflow 브랜치 전략 이해하기 많은 IT 기업에서 gitflow 를 사용해 버전 관리를 하고 있는 것으로 알고 있다. 나도 실제로 개발 업무을 진행하면서 Gitflow 를 통해 버전관리를 하고 있다. 하지만 Gitflow 가 무엇이고 어떻게 사용하고 어떤 전략을 통해 버전 관리를 하도록 권장하고 있는지 알아보기 위해 정리해보았다. 그럼 Gitflow 에는 어떤 브랜치들로 구성되어있고 어떤 전략으로 사용되는지 알아보자. Gitflow 브랜치 구성 GitFlow 는 다음과 같은 브랜치들로 구성되어있다. main branch (기존 master 에서 main 으로 변경) develop branch feature branch release branch hotfix branch 그럼 각 브랜치들을 어떤 전략으로 사용해야하는지에 대해서 알아보자.. 공감수 0 댓글수 0 2023. 9. 10.
  • AWS EC2 인스턴스 유형 t2 와 t3 비교하기 (t2 vs t3) AWS  프리티어를 사용하게 되면 기본적으로 EC2 인스턴스의 t2 유형을 사용할 수 있다.프리티어가 계속해서 적용되어있다면 t2 를 사용하는 것이 효율적이라고 생각되지만 1년이 지나고 프리티어가 적용되지 않는다면 t2 를 계속해서 사용하는 것이 효율적인가에 대한 고민이 들거라고 생각한다.또한 프리티어에서 기본적으로 제공해주는 ec2 t2.micro 인스턴스 유형의 경우 CPU 1 core, RAM 1GB 를 제공해주고 있다.그렇기에 t2 인스턴스 유형으로 만들어진 ec2 에서 작업을 수행할 때 리소스 부족으로 문제가 발생할 수 있다. 그럼 t2 를 사용하기에는 리소스가 부족하고 조금 더 큰 리소스를 가지는 인스턴스 유형으로 변경하고자 할 때 많은 고민이 생긴다.당연히 비용에 대한 고민이다. 리소스를 증.. 공감수 1 댓글수 2 2023. 9. 3.
  • 서버 사이드 렌더링(Server Side Rendering, SSR) 이란 개발을 진행하면서 서버 사이드 렌더링에 대한 이해가 필요해 정리해보았다. 먼저 렌더링에 대한 간단한 이해를 시작으로 정리해보려고 한다. 렌더링이란 서버로부터 받은 파일을 클라이언트인 브라우저에게 보내는 과정이다. 간단하게 말해 서버에서 HTML 파일과 CSS 파일을 클라이언트에서 받아 파싱하게 되고 렌더링 과정을 통해 브라우저에 화면을 보여주게 된다. 그럼 이러한 렌더링 과정을 서버 측면에서 해줄 것이냐, 클라이언트 측면에서 해줄 것인가에 대한 부분에 있어 서버 사이드 렌더링과 클라이언트 사이드 렌더링 방식으로 사용되고 있다. 나는 이번에 서버 사이드 렌더링 방식 관점에서 정리해보려고 한다. 서버 사이드 렌더링 (Server Side Rendering) 이란 서버 사이드 렌더링이란 서버에서 페이지를 만들.. 공감수 0 댓글수 0 2023. 8. 20.
    반응형
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.