diff --git a/_posts/2019-08-08-write-a-new-post.md b/_posts/2019-08-08-write-a-new-post.md deleted file mode 100644 index 69eaf34a..00000000 --- a/_posts/2019-08-08-write-a-new-post.md +++ /dev/null @@ -1,505 +0,0 @@ ---- -title: Writing a New Post -author: cotes -date: 2019-08-08 14:10:00 +0800 -categories: [Blogging, Tutorial] -tags: [writing] -render_with_liquid: false ---- - -This tutorial will guide you how to write a post in the _Chirpy_ template, and it's worth reading even if you've used Jekyll before, as many features require specific variables to be set. - -## Naming and Path - -Create a new file named `YYYY-MM-DD-TITLE.EXTENSION`{: .filepath} and put it in the `_posts`{: .filepath} of the root directory. Please note that the `EXTENSION`{: .filepath} must be one of `md`{: .filepath} and `markdown`{: .filepath}. If you want to save time of creating files, please consider using the plugin [`Jekyll-Compose`](https://github.com/jekyll/jekyll-compose) to accomplish this. - -## Front Matter - -Basically, you need to fill the [Front Matter](https://jekyllrb.com/docs/front-matter/) as below at the top of the post: - -```yaml ---- -title: TITLE -date: YYYY-MM-DD HH:MM:SS +/-TTTT -categories: [TOP_CATEGORIE, SUB_CATEGORIE] -tags: [TAG] # TAG names should always be lowercase ---- -``` - -> The posts' _layout_ has been set to `post` by default, so there is no need to add the variable _layout_ in the Front Matter block. -{: .prompt-tip } - -### Timezone of Date - -To accurately record the release date of a post, you should not only set up the `timezone` of `_config.yml`{: .filepath} but also provide the post's timezone in variable `date` of its Front Matter block. Format: `+/-TTTT`, e.g. `+0800`. - -### Categories and Tags - -The `categories` of each post are designed to contain up to two elements, and the number of elements in `tags` can be zero to infinity. For instance: - -```yaml ---- -categories: [Animal, Insect] -tags: [bee] ---- -``` - -### Author Information - -The author information of the post usually does not need to be filled in the _Front Matter_ , they will be obtained from variables `social.name` and the first entry of `social.links` of the configuration file by default. But you can also override it as follows: - -Adding author information in `_data/authors.yml` (If your website doesn't have this file, don't hesitate to create one). - -```yaml -: - name: - twitter: - url: -``` -{: file="_data/authors.yml" } - -And then use `author` to specify a single entry or `authors` to specify multiple entries: - -```yaml ---- -author: # for single entry -# or -authors: [, ] # for multiple entries ---- -``` - -Having said that, the key `author` can also identify multiple entries. - -> The benefit of reading the author information from the file `_data/authors.yml`{: .filepath } is that the page will have the meta tag `twitter:creator`, which enriches the [Twitter Cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/guides/getting-started#card-and-content-attribution) and is good for SEO. -{: .prompt-info } - -### Post Description - -By default, the first words of the post are used to display on the home page for a list of posts, in the _Further Reading_ section, and in the XML of the RSS feed. If you don't want to display the auto-generated description for the post, you can customize it using the `description` field in the _Front Matter_ as follows: - -```yaml ---- -description: Short summary of the post. ---- -``` - -Additionally, the `description` text will also be displayed under the post title on the post's page. - -## Table of Contents - -By default, the **T**able **o**f **C**ontents (TOC) is displayed on the right panel of the post. If you want to turn it off globally, go to `_config.yml`{: .filepath} and set the value of variable `toc` to `false`. If you want to turn off TOC for a specific post, add the following to the post's [Front Matter](https://jekyllrb.com/docs/front-matter/): - -```yaml ---- -toc: false ---- -``` - -## Comments - -The global switch of comments is defined by variable `comments.active` in the file `_config.yml`{: .filepath}. After selecting a comment system for this variable, comments will be turned on for all posts. - -If you want to close the comment for a specific post, add the following to the **Front Matter** of the post: - -```yaml ---- -comments: false ---- -``` - -## Media - -We refer to images, audio and video as media resources in _Chirpy_. - -### URL Prefix - -From time to time we have to define duplicate URL prefixes for multiple resources in a post, which is a boring task that you can avoid by setting two parameters. - -- If you are using a CDN to host media files, you can specify the `cdn` in `_config.yml`{: .filepath }. The URLs of media resources for site avatar and posts are then prefixed with the CDN domain name. - - ```yaml - cdn: https://cdn.com - ``` - {: file='_config.yml' .nolineno } - -- To specify the resource path prefix for the current post/page range, set `media_subpath` in the _front matter_ of the post: - - ```yaml - --- - media_subpath: /path/to/media/ - --- - ``` - {: .nolineno } - -The option `site.cdn` and `page.media_subpath` can be used individually or in combination to flexibly compose the final resource URL: `[site.cdn/][page.media_subpath/]file.ext` - -### Images - -#### Caption - -Add italics to the next line of an image, then it will become the caption and appear at the bottom of the image: - -```markdown -![img-description](/path/to/image) -_Image Caption_ -``` -{: .nolineno} - -#### Size - -To prevent the page content layout from shifting when the image is loaded, we should set the width and height for each image. - -```markdown -![Desktop View](/assets/img/sample/mockup.png){: width="700" height="400" } -``` -{: .nolineno} - -> For an SVG, you have to at least specify its _width_, otherwise it won't be rendered. -{: .prompt-info } - -Starting from _Chirpy v5.0.0_, `height` and `width` support abbreviations (`height` → `h`, `width` → `w`). The following example has the same effect as the above: - -```markdown -![Desktop View](/assets/img/sample/mockup.png){: w="700" h="400" } -``` -{: .nolineno} - -#### Position - -By default, the image is centered, but you can specify the position by using one of the classes `normal`, `left`, and `right`. - -> Once the position is specified, the image caption should not be added. -{: .prompt-warning } - -- **Normal position** - - Image will be left aligned in below sample: - - ```markdown - ![Desktop View](/assets/img/sample/mockup.png){: .normal } - ``` - {: .nolineno} - -- **Float to the left** - - ```markdown - ![Desktop View](/assets/img/sample/mockup.png){: .left } - ``` - {: .nolineno} - -- **Float to the right** - - ```markdown - ![Desktop View](/assets/img/sample/mockup.png){: .right } - ``` - {: .nolineno} - -#### Dark/Light mode - -You can make images follow theme preferences in dark/light mode. This requires you to prepare two images, one for dark mode and one for light mode, and then assign them a specific class (`dark` or `light`): - -```markdown -![Light mode only](/path/to/light-mode.png){: .light } -![Dark mode only](/path/to/dark-mode.png){: .dark } -``` - -#### Shadow - -The screenshots of the program window can be considered to show the shadow effect: - -```markdown -![Desktop View](/assets/img/sample/mockup.png){: .shadow } -``` -{: .nolineno} - -#### Preview Image - -If you want to add an image at the top of the post, please provide an image with a resolution of `1200 x 630`. Please note that if the image aspect ratio does not meet `1.91 : 1`, the image will be scaled and cropped. - -Knowing these prerequisites, you can start setting the image's attribute: - -```yaml ---- -image: - path: /path/to/image - alt: image alternative text ---- -``` - -Note that the [`media_subpath`](#url-prefix) can also be passed to the preview image, that is, when it has been set, the attribute `path` only needs the image file name. - -For simple use, you can also just use `image` to define the path. - -```yml ---- -image: /path/to/image ---- -``` - -#### LQIP - -For preview images: - -```yaml ---- -image: - lqip: /path/to/lqip-file # or base64 URI ---- -``` - -> You can observe LQIP in the preview image of post \"[Text and Typography](../text-and-typography/)\". - -For normal images: - -```markdown -![Image description](/path/to/image){: lqip="/path/to/lqip-file" } -``` -{: .nolineno } - -### Video - -#### Social Media Platform - -You can embed videos from social media platforms with the following syntax: - -```liquid -{% include embed/{Platform}.html id='{ID}' %} -``` - -Where `Platform` is the lowercase of the platform name, and `ID` is the video ID. - -The following table shows how to get the two parameters we need in a given video URL, and you can also know the currently supported video platforms. - -| Video URL | Platform | ID | -| -------------------------------------------------------------------------------------------------- | ---------- | :------------- | -| [https://www.**youtube**.com/watch?v=**H-B46URT4mg**](https://www.youtube.com/watch?v=H-B46URT4mg) | `youtube` | `H-B46URT4mg` | -| [https://www.**twitch**.tv/videos/**1634779211**](https://www.twitch.tv/videos/1634779211) | `twitch` | `1634779211` | -| [https://www.**bilibili**.com/video/**BV1Q44y1B7Wf**](https://www.bilibili.com/video/BV1Q44y1B7Wf) | `bilibili` | `BV1Q44y1B7Wf` | - -#### Video Files - -If you want to embed a video file directly, use the following syntax: - -```liquid -{% include embed/video.html src='{URL}' %} -``` - -Where `URL` is a URL to a video file e.g. `/path/to/sample/video.mp4`. - -You can also specify additional attributes for the embedded video file. Here is a full list of attributes allowed. - -- `poster='/path/to/poster.png'` — poster image for a video that is shown while video is downloading -- `title='Text'` — title for a video that appears below the video and looks same as for images -- `autoplay=true` — video automatically begins to play back as soon as it can -- `loop=true` — automatically seek back to the start upon reaching the end of the video -- `muted=true` — audio will be initially silenced -- `types` — specify the extensions of additional video formats separated by `|`. Ensure these files exist in the same directory as your primary video file. - -Consider an example using all of the above: - -```liquid -{% - include embed/video.html - src='/path/to/video.mp4' - types='ogg|mov' - poster='poster.png' - title='Demo video' - autoplay=true - loop=true - muted=true -%} -``` - -### Audios - -If you want to embed an audio file directly, use the following syntax: - -```liquid -{% include embed/audio.html src='{URL}' %} -``` - -Where `URL` is a URL to an audio file e.g. `/path/to/audio.mp3`. - -You can also specify additional attributes for the embedded audio file. Here is a full list of attributes allowed. - -- `title='Text'` — title for an audio that appears below the audio and looks same as for images -- `types` — specify the extensions of additional audio formats separated by `|`. Ensure these files exist in the same directory as your primary audio file. - -Consider an example using all of the above: - -```liquid -{% - include embed/audio.html - src='/path/to/audio.mp3' - types='ogg|wav|aac' - title='Demo audio' -%} -``` - -## Pinned Posts - -You can pin one or more posts to the top of the home page, and the fixed posts are sorted in reverse order according to their release date. Enable by: - -```yaml ---- -pin: true ---- -``` - -## Prompts - -There are several types of prompts: `tip`, `info`, `warning`, and `danger`. They can be generated by adding the class `prompt-{type}` to the blockquote. For example, define a prompt of type `info` as follows: - -```md -> Example line for prompt. -{: .prompt-info } -``` -{: .nolineno } - -## Syntax - -### Inline Code - -```md -`inline code part` -``` -{: .nolineno } - -### Filepath Highlight - -```md -`/path/to/a/file.extend`{: .filepath} -``` -{: .nolineno } - -### Code Block - -Markdown symbols ```` ``` ```` can easily create a code block as follows: - -````md -``` -This is a plaintext code snippet. -``` -```` - -#### Specifying Language - -Using ```` ```{language} ```` you will get a code block with syntax highlight: - -````markdown -```yaml -key: value -``` -```` - -> The Jekyll tag `{% highlight %}` is not compatible with this theme. -{: .prompt-danger } - -#### Line Number - -By default, all languages except `plaintext`, `console`, and `terminal` will display line numbers. When you want to hide the line number of a code block, add the class `nolineno` to it: - -````markdown -```shell -echo 'No more line numbers!' -``` -{: .nolineno } -```` - -#### Specifying the Filename - -You may have noticed that the code language will be displayed at the top of the code block. If you want to replace it with the file name, you can add the attribute `file` to achieve this: - -````markdown -```shell -# content -``` -{: file="path/to/file" } -```` - -#### Liquid Codes - -If you want to display the **Liquid** snippet, surround the liquid code with `{% raw %}` and `{% endraw %}`: - -````markdown -{% raw %} -```liquid -{% if product.title contains 'Pack' %} - This product's title contains the word Pack. -{% endif %} -``` -{% endraw %} -```` - -Or adding `render_with_liquid: false` (Requires Jekyll 4.0 or higher) to the post's YAML block. - -## Mathematics - -We use [**MathJax**][mathjax] to generate mathematics. For website performance reasons, the mathematical feature won't be loaded by default. But it can be enabled by: - -[mathjax]: https://www.mathjax.org/ - -```yaml ---- -math: true ---- -``` - -After enabling the mathematical feature, you can add math equations with the following syntax: - -- **Block math** should be added with `$$ math $$` with **mandatory** blank lines before and after `$$` - - **Inserting equation numbering** should be added with `$$\begin{equation} math \end{equation}$$` - - **Referencing equation numbering** should be done with `\label{eq:label_name}` in the equation block and `\eqref{eq:label_name}` inline with text (see example below) -- **Inline math** (in lines) should be added with `$$ math $$` without any blank line before or after `$$` -- **Inline math** (in lists) should be added with `\$$ math $$` - -```markdown - - -$$ -LaTeX_math_expression -$$ - - - -$$ -\begin{equation} - LaTeX_math_expression - \label{eq:label_name} -\end{equation} -$$ - -Can be referenced as \eqref{eq:label_name}. - - - -"Lorem ipsum dolor sit amet, $$ LaTeX_math_expression $$ consectetur adipiscing elit." - - - -1. \$$ LaTeX_math_expression $$ -2. \$$ LaTeX_math_expression $$ -3. \$$ LaTeX_math_expression $$ -``` - -> Starting with `v7.0.0`, configuration options for **MathJax** have been moved to file `assets/js/data/mathjax.js`{: .filepath }, and you can change the options as needed, such as adding [extensions][mathjax-exts]. -> If you are building the site via `chirpy-starter`, copy that file from the gem installation directory (check with command `bundle info --path jekyll-theme-chirpy`) to the same directory in your repository. -{: .prompt-tip } - -[mathjax-exts]: https://docs.mathjax.org/en/latest/input/tex/extensions/index.html - -## Mermaid - -[**Mermaid**](https://github.com/mermaid-js/mermaid) is a great diagram generation tool. To enable it on your post, add the following to the YAML block: - -```yaml ---- -mermaid: true ---- -``` - -Then you can use it like other markdown languages: surround the graph code with ```` ```mermaid ```` and ```` ``` ````. - -## Learn More - -For more knowledge about Jekyll posts, visit the [Jekyll Docs: Posts](https://jekyllrb.com/docs/posts/). diff --git "a/_posts/2024-07-29-ICT \354\235\270\355\204\264 \354\247\200\354\233\220 \355\233\204\352\270\260.md" "b/_posts/2024-07-29-ICT \354\235\270\355\204\264 \354\247\200\354\233\220 \355\233\204\352\270\260.md" new file mode 100644 index 00000000..d1a0aa64 --- /dev/null +++ "b/_posts/2024-07-29-ICT \354\235\270\355\204\264 \354\247\200\354\233\220 \355\233\204\352\270\260.md" @@ -0,0 +1,116 @@ +--- +title: ICT 인턴십 지원 후기 +date: 2024-07-09 16:20:00 +0900 +categories: [Blogging, Etc] +tags: [ICT인턴십, 코딩테스트, 면접] +--- + +# 1. ICT 인턴 지원 후기 + +--- + +***블로그 첫 글을 쓰다.*** + +예전에도 블로그를 할까 말까 고민은 많았지만, 블로그는 양날의 검이라는 선배, 멘토, 주변 사람들의 말을 듣고 하지 않았다. 글 쓰는 것에 너무 집중해서 시간을 헛되게 보내지 않을까 걱정했기 때문이다. + +하지만 지금 내가 공부한 것, 깊게 생각하고 고민한 것들은 ‘지금의 나’만 경험할 수 있는 것이라 생각한다. 이러한 값진 경험을 기억하기 위해 블로그를 시작해본다. + +--- + +## 1. 지원 + +--- + +1학기 종강 후 원래 계획 했던 대로 다음 학기는 인턴을 하기 위해 준비하기 시작했다. 어떤 인턴을 할까 고민하던 중 ICT 인턴이 눈에 들어왔다. 아직 2024 하반기 기업 목록이 나오지 않았기에 지난 ICT 인턴 기업 목록을 자세히 살펴보며 나와 어울리는 기업을 찾아보았다. 몇 곳 눈에 들어온 곳이 있었고 ICT 인턴을 지원 해야겠다고 마음 먹었다. + +하지만 이후 2024 하반기 참여 기업 목록이 나왔는데, 봐둔 곳은 이번에 모집하지 않았다. 아쉽지만 다른 기업을 리스트업해서 지원을 했다. + +## 2. 코딩테스트 + +--- + +총 세 곳을 지원할 수 있었는데, 두 곳은 코딩테스트를 보지 않는 곳이었고 한 곳은 코딩테스트를 보는 곳이었다. 그래서 코딩테스트를 치게 되었다. 코딩테스트는 해커랭크라는 코딩테스트 플랫폼에서 진행되었고, 문제는 모두 영어로 출제되었다. 나는 모두 자바로 풀이하였다. + +### 1번. map을 이용하는 문제 (예상 난이도 - 실버 5) + +간단한 문제였다. 특정 알파벳 하나씩 포함된 쌍이 몇 개가 나오는지 구하면 되는 문제였다. + +- 특정 알파벳 배열을 char 배열에 저장 +- map을 이용하여 알파벳이 주어진 String에 몇 개가 있는지 check +- 가장 적은 숫자 return + +이 문제의 핵심은 map을 이용해서 개수를 count할 수 있는 지를 물어보는 문제 같았다. + +### 2번. 배열 분석 및 modulo 계산하기 (예상 난이도 - 실버 3) + +이것도 간단한 문제였는데, 배열이 주어지고 문제에서 제시한 조건 식을 계산해서 가장 큰 값이 나오는 index를 return하는 문제였다. 만약 같은 값을 가지는 index가 있다면 그 중 가장 작은 값을 return 한다. + +문제는 간단하였지만 주어진 조건 식이 좀 복잡하였다. 배열의 요소들을 이용해서 지수, mod 계산을 해야 했다. + +- mod 계산식을 int로 변환하여 저장, 값을 저장할 maxVal, 인덱스를 저장할 maxIdx를 선언한 후 -1로 초기화 +- 계산에 필요한 배열 요소 값을 저장한 후 식 계산 +- 값과 인덱스를 알맞게 update + +이 문제의 핵심은 수학적 구현을 할 수 있는지, int의 범위를 알고 있는 지를 물어보는 문제 같았다. + +### 3번. 방향 찾기 문제 (예상 난이도 - 실버 1 ~ 2) + +이 문제는 주어진 Command List가 있을 때, 그것을 수행하면 원을 그릴 수 있는지(순환하는지)를 체크하는 문제였다. + +나는 이 문제를 단순 구현으로 풀이하였다. Command를 char 나누어 방향을 계산했다. + +- x, y, dir 선언하고 0으로 초기화 +- G이면 dir의 값에 맞게 x축, y축 값 update +- L과 R이면 나머지 연산을 이용하여 dir값 update +- 순환 여부 확인 후 “YES” 또는 “NO” 출력 + +이 문제의 핵심은 문제를 이해하고 구현할 수 있는지 여부를 물어보는 것 같았다. + +### 4번. 재귀를 이용하여 스케줄 계산하기 (예상 난이도 - 골드 4 ~ 5) + +workHours, dayHours, pattern이 주어질 때 스케줄을 계산하는 문제였다. 가능한 모든 스케줄을 생성하는 것이다. + +- 총 시간과 알 수 없는 시간을 계산한다. +- 재귀를 이용하여 가능한 모든 스케줄을 생성한다. → 스케줄 배열의 특정 인덱스부터 시작하여 남은 시간 배분 + +이 문제는 재귀를 사용할 수 있는 가를 물어보는 것 같았다. + +### 5번. 가장 큰 Sub-Grid 찾기 (예상 난이도 - 골드 3 ~ 4) + +2차원 배열과 maxSum값이 주어질 때, 모든 sub-grid에 대해 모든 요소 값의 합이 maxSum 값 이하인 정사각형 sub-grid의 최대 크기를 결정하는 문제였다. + +- 구현과 이분 탐색을 통해 풀어보려 했으나 실패.. + +이 문제는 테스트 케이스의 반만 맞았다. 아무래도 내 접근 방식이 틀렸던 것 같다. + +이렇게 최종 4.5솔로 코딩테스트를 마무리했다. + +## 3. 면접 + +--- + +운이 좋게도 지원했던 세 곳 중 두 곳에서 서류 전형 합격 소식을 들었다. 나머지 한 곳은 서류 전형 탈락이었다. 풀스택 개발자를 원하던 곳이라 탈락할 수 있겠다는 생각을 했지만 조건이 마음에 들어서 지원했던 곳이었다. + +면접은 두 곳 모두 프로젝트와 인성을 위주로 질문하셨고, 간단한 CS도 물어보셨다. 면접은 모두 화상 면접이었고 면접관님들이 편안하게 분위기를 리드해주셔서 감사했다. 최근 진행하고 있는 두레 프로젝트에 관련한 질문은 꽤 심도 있게 질문하셨는데, 기획부터 개발까지 모두 직접 했기 때문에 어렵지 않게 대답할 수 있었다. + +## 4. 결과 및 마무리 + +--- + +면접에서 모두 좋게 봐주셔서 두 곳 모두 합격 소식을 들을 수 있었다. + +하지만 오랜 고민 끝에 ICT 인턴 취소를 결정했다. 코딩테스트 후 팀원들과 이야기를 하며 정말 가고 싶은 곳이 생겼기 때문이다. 가고 싶은 회사는 문화를 중시하는 회사였고, 다녔던 친구, 다니고 있는 친구들의 후기를 들어봐도 너무 좋았다. 값진 경험을 할 수 있을 것 같았다. 회사가 부산에 있다는 것도 큰 장점 중 하나였다. ICT 인턴을 지원하면서도 마음 한 부분에 *이게 과연 맞을까?* 라는 생각을 많이 하였는데, 이 회사는 듣자마자 *이건 맞아!* 라는 생각이 들었다. + +코딩테스트부터 면접까지 시간이 그렇게 길지 않아 고민도 제대로 못하고 일단 면접부터 보았는데,결과가 나온 후 오래 고민한 끝에 생각을 정리할 수 있었다. + +오늘 인턴 취소 메일을 보냈다. (면접 합격 했는데 인턴 진행을 하지 않길 원한다면 메일 보내야 함) + +- 형식 : 이름_학교_기업명_인턴취소 + +![image](/assets/posts/ICT인턴지원후기/인턴취소.png) + +답장도 매우 빨리 왔다. + +![image](/assets/posts/ICT인턴지원후기/인턴취소답장.png) + +이제 새로운 목표를 위해 최선을 다해 준비해야겠다. \ No newline at end of file diff --git "a/assets/posts/ICT\354\235\270\355\204\264\354\247\200\354\233\220\355\233\204\352\270\260/\354\235\270\355\204\264\354\267\250\354\206\214.png" "b/assets/posts/ICT\354\235\270\355\204\264\354\247\200\354\233\220\355\233\204\352\270\260/\354\235\270\355\204\264\354\267\250\354\206\214.png" new file mode 100644 index 00000000..89c3b8f7 Binary files /dev/null and "b/assets/posts/ICT\354\235\270\355\204\264\354\247\200\354\233\220\355\233\204\352\270\260/\354\235\270\355\204\264\354\267\250\354\206\214.png" differ diff --git "a/assets/posts/ICT\354\235\270\355\204\264\354\247\200\354\233\220\355\233\204\352\270\260/\354\235\270\355\204\264\354\267\250\354\206\214\353\213\265\354\236\245.png" "b/assets/posts/ICT\354\235\270\355\204\264\354\247\200\354\233\220\355\233\204\352\270\260/\354\235\270\355\204\264\354\267\250\354\206\214\353\213\265\354\236\245.png" new file mode 100644 index 00000000..f4369d35 Binary files /dev/null and "b/assets/posts/ICT\354\235\270\355\204\264\354\247\200\354\233\220\355\233\204\352\270\260/\354\235\270\355\204\264\354\267\250\354\206\214\353\213\265\354\236\245.png" differ