반응형

웹3 및 NFT에서 자주 사용되는 용어 정리

중앙화 거래소(CEX)와 탈중앙화 거래소(DEX)

CEX (Centralized Exchange)

  • 대표 예시: 바이낸스, 업비트
  • 특징: 오더북 기반으로 거래를 처리하며, 장부 정리를 한꺼번에 수행합니다.

DEX (Decentralized Exchange)

  • 대표 예시: 유니스왑, 쥬피터
  • 특징: 스마트 컨트랙트를 활용하여 거래를 처리하며, 자산 보호를 제공하지 않음. 탈중앙화 특성상 보안에 주의가 필요합니다.

Contract Address (CA)

  • 토큰 주소를 의미하며, 특정 토큰의 고유 식별자 역할을 합니다.

상장 관련 용어

TGE (Token Generate Event)

  • 토큰이 발행되는 시점을 의미합니다.

Vesting

  • 토큰의 잠금 기간을 의미하며, 예를 들어 "TGE 60%, 1년 vesting 40%"는 상장 당시 60% 지급 후, 나머지 40%는 1년에 걸쳐 지급됨을 뜻합니다.

에어드랍 관련 용어

Airdrop

  • 특정 요건을 충족한 사용자에게 무료로 신규 코인을 배포하는 행위입니다.

WhiteList (WL)

  • 프로젝트에서 제공하는 우선 청약권을 의미합니다.

Snapshot

  • 특정 시점을 기준으로 조건에 맞는 사용자를 분리하는 행위를 뜻합니다.

Reveal

  • 선판매된 NFT를 고유 특성을 가진 NFT로 변환시키는 작업입니다.

토큰 관련 용어

SWAP

  • DEX에서 토큰 간 교환을 의미합니다.

MCAP (Market Capitalization)

  • 유통 중인 토큰의 시가총액입니다.

TVL (Total Value Locked)

  • 담보 또는 유동성 풀에 잠겨 있는 금액입니다.

FDV (Fully Diluted Valuation)

  • 전체 발행 가능한 토큰의 총 가치입니다.

런치패드, 런치풀, APR

런치패드

  • 신규 코인을 판매하는 방법으로, 공모주 청약과 유사한 방식입니다.

런치풀

  • 예치된 코인에 대해 상장 예정 코인을 이자로 받는 개념입니다.
  • 스테이킹: 기간이 끝날 때까지 인출 불가능.
  • 런치풀: 언제든 인출 가능.

APR (Annual Percentage Rate)

  • 연간 이자율을 의미합니다.

NFT 관련 용어

PFP

  • 프로필 사진(Profile Picture)으로 활용되는 NFT입니다.

Minting

  • NFT를 발행하는 과정을 뜻합니다.

브리딩 (Breeding)

  • NFT 프로젝트에서 새로운 프로젝트를 생성하는 행위로, 펏지 펭귄 → 릴 펏지와 같은 사례가 있습니다.

FP (Floor Price)

  • NFT의 최저가를 의미합니다.

플랫폼별 지갑

  1. 이더리움
    • 메타마스크, 래빗월렛
  2. 솔라나
    • 팬텀, 백팩
  3. 비트코인
    • 엑스버스, 유니삿

블록체인 및 거래 관련 필수 용어

MEV (Maximal Extractable Value)

  • 블록체인 거래에서 선순위 요청을 밀어내고 차익을 얻는 행위로, 일종의 새치기입니다.

슬리피지 (Slippage)

  • 주문 가격과 실제 거래 가격의 차이로, 유동성이 낮은 코인에서 자주 발생합니다.

Mintable

  • 무한 발행이 가능한 코인으로, 추가 발행 가능 여부를 항상 확인해야 합니다.

Conviction

  • 특정 코인에 강한 확신을 가지고 대량 매수하는 행위입니다.

Top Blast

  • 가격이 가장 높은 시점에서 매수하는 것을 의미합니다.

Freeze / 허니팟

  • 매도가 불가능하게 만들어 피해를 입히는 스캠 방식입니다.
반응형
반응형

https://learn.microsoft.com/ko-kr/windows/wsl/install

Anchor

솔라나는 Rust 라는 언어로 컨트랙트를 작성해 배포한다. 하지만, 쌩 Rust 로는 너무너무나 어렵고 관리가 힘들기에 Anchor 라는 Rust 프레임 워크를 사용한다. 하지만, Windows 상에서 anchor 설치 및 관리가 꽤 복잡하기에 이렇게 문서로 작성한다.

위의 링크에 따라서 WSL 환경에서 구현하려고 한다.

 

WSL 이란?

간단하게 말해서 윈도우 위에서 돌아가는 작은 컴퓨터다. VM 이 있지 않나요? 하신다면, VM 은 진짜 OS 를 새로 띄워 구동부터 하는 반면, WSL 은 윈도우 운영체제 안에 작은 디스크 조각안에서 가상머신 운영체제 명령어를 이용할 수 있는 기능이다. 윈도우와 파일교환이 가능하다.

1. WSL 설치

Powershell 혹은 cmd 창을 열어 wsl 을 설치한다.

wsl --install

2.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

3.

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

4. 재부팅

5.

Rust & Cargo 설치

Rust를 설치하고 Cargo를 설치한다.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
  • rustup 을 설치해 rust를 설치하고, cargo 를 설치한다.

6.

Node.js, NPM 설치

Anchor CLI와 프로젝트 초기화를 위해 Node.js를 설치해야 한다.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

nvm install 22

7. 솔라나 설치

sh -c "$(curl -sSfL https://release.solana.com/v1.16.5/install)"

8. Anchor 설치

npm i -g @coral-xyz/anchor-cli

9. 솔라나 cli 설치

 solana config set --url localhost

 solana config set --url https://api.devnet.solana.com
Config File: /home/lkbrothers/.config/solana/cli/config.yml
RPC URL: http://localhost:8899
WebSocket URL: ws://localhost:8900/ (computed)
Keypair Path: /home/lkbrothers/.config/solana/id.json
Commitment: confirmed

 

솔라나 키체인 생성

solana-keygen new
----
Generating a new keypair

For added security, enter a BIP39 passphrase

NOTE! This passphrase improves security of the recovery seed phrase NOT the
keypair file itself, which is stored as insecure plain text

BIP39 Passphrase (empty for none):

Wrote new keypair to /home/lkbrothers/.config/solana/id.json
=========================================================================
pubkey: "YOUR KEYCHAIN"
=========================================================================
Save this seed phrase and your BIP39 passphrase to recover your new keypair:
normal warm mercy fix leader crater cinnamon palm truly nice movie embark
=========================================================================

 

주소확인

solana address

 

앵커 인잇

Anchor 프로젝트가 생성된다.

anchor init my-project

4. 빌드 및 배포

로컬 밸리데이터 실행

로컬에서 실행되는 블록체인 환경이다. 실행하면 블록체인 시스템이 로컬에서 실행된다.

solana-test-validator

빌드

anchor build

배포

anchor deploy

에러 처리

  1. 솔라나 테스트 밸리데이터 오류

솔라나 테스트 밸리데이터 실행시 오류가 나왔다. 처음 ubuntu 실행환경에서는 bzip2 가 깔려있지 않아 깔아줘야한다.

sudo apt update
sudo apt install bzip2

 

2. 앵커 버전4 빌드 오류

 

There is an issue on the anchor repository for this: https://github.com/coral-xyz/anchor/issues/3392#issuecomment-2508412018

 

Fresh project `anchor build` fails with "lock file version 4 requires `-Znext-lockfile-bump`" · Issue #3392 · coral-xyz/anchor

Issue Running anchor build or anchor test in a fresh project initialized with anchor-cli fails with the following: error: failed to parse lock file at: /Users/{user}/{project_dir}/anchor/Cargo.lock...

github.com

 

The suggested solution is to change the lock file version from 4 to 3.

This is acherons answer to the issue which will be solved in Anchor version 2.x

You can fix this simply by changing the version field of Cargo.lock as #3393 (comment) suggested:

- version = 4
+ version = 3
The reason why it happens is because Anchor v0.30 uses Solana v1.18, and Solana v1.18 depends on rustc 1.75, but the new version (4) of Cargo.lock has only been stabilized in rustc 1.78 (as mentioned in rust-lang/cargo#14655 (comment)).

Solana build tools have recently been updated to use rustc 1.79, which is available since Solana v2.1, and it's also what the master branch of Anchor uses (#3339).

Anchor v0.31 (#3259) will support Solana v2, meaning this issue will be resolved automatically. In the meantime, you can just use the fix mentioned at the beginning of this comment.

If you are still having issues afterwards follow the guide from beeman here: https://github.com/coral-xyz/anchor/issues/3392#issuecomment-2565734744

 

Fresh project `anchor build` fails with "lock file version 4 requires `-Znext-lockfile-bump`" · Issue #3392 · coral-xyz/anchor

Issue Running anchor build or anchor test in a fresh project initialized with anchor-cli fails with the following: error: failed to parse lock file at: /Users/{user}/{project_dir}/anchor/Cargo.lock...

github.com

 

⇒ Cargo 최신버전이 4 인데 어째서인지 오류가 난다. 깃헙 이슈에도 해당 이슈가 나와있고, 문제가 있어 3으로 내리라고한다. lock 파일 버전을 변경해주자.

 

3. 빌드오류2

=> 링커 못찾음

 

링커를 찾지못하면 gcc, cc 등 c 기반 프로그램이 깔려있지 않아서다. 아래 방법대로 깔아주자.

 

1. 필수 패키지 설치 (Ubuntu/WSL 기준)

  1. 시스템 패키지 업데이트
  2. sudo apt update sudo apt upgrade
  3. C 컴파일러 및 빌드 도구 설치
    아래 명령어로 필요한 패키지를 설치합니다:
  4. sudo apt install build-essential
  5. 설치 확인
    설치된 gcccc의 버전을 확인합니다:
  6. gcc --version cc --version

2. Rust 및 Cargo 빌드 도구 재설치

Rust 및 Cargo 관련 문제가 있을 경우 재설치해보세요:

  1. Rust 재설치:
  2. rustup self uninstall curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  3. 설치 후 Rust 버전 확인:
  4. rustc --version cargo --version

3. 프로젝트 다시 빌드

필요한 도구를 설치한 후, Rust 프로젝트를 다시 빌드하세요:

cargo clean
cargo build
반응형
반응형

1. Install ehthers zkSync

npm install ethers zkSync

2. zkSync 란?

zkSync 는 EVM 을 확장하기 위한 레이어 2 솔루션. ZKP 를 이용한 빠르고 저렴한 거래처리 가능

ZKP (Zero Knowledge Proof) 는 뭔데?

어떤 정보를 드러내지 않고 특정 주장이나 사실이 참임을 증명하는 기술

블록체인에서는 거래내역을 보여주지 않고 거래내역이 유효함을 증명할 수 있다.

zkSync 를 통해 빠르고 저렴한 거래처리를 적용할 수 있다!

Provider 생성

alice.js, bob.js 를 zkSync 로 연결하기 위해서는 util.js 에서 zkSync Provider를 생성해야한다.

// utils.js

async function getZkSyncProvider(zksync, networkName) {
    let zkSyncProvider;
    try {
        zkSyncProvider = await zksync.getDefaultProvider(networkName);
    } catch (error) {
        console.log('Unable to connect to zkSync.');
        console.error(error);
    }
    return zkSyncProvider;
}

3. zkSync 계정 만들기

zkSync 와 이더리움을 연결하려면 계정과 지갑에 대해 알아야한다. 따라서, zkSync 의 지갑 계정을 생성해 이더리움과 연결해보자.

async function getZkSyncProvider (zksync, networkName) {
  let zkSyncProvider
  try {
    zkSyncProvider = await zksync.getDefaultProvider(networkName)
  } catch (error) {
    console.log('Unable to connect to zkSync.')
    console.log(error)
  }
  return zkSyncProvider
}

async function getEthereumProvider (ethers, networkName) {
  let ethersProvider
  try {
    ethersProvider = new ethers.getDefaultProvider(networkName)
  } catch (error) {
    console.log('Could not connect to Rinkeby')
    console.log(error)
  }
  return ethersProvider
}

async function initAccount (rinkebyWallet, zkSyncProvider, zksync) {
  const zkSyncWallet = await zksync.Wallet.fromEthSigner(rinkebyWallet, zkSyncProvider)
  return zkSyncWallet
}

 

위 코드의 결과로 zkSyncWallet 을 생성할 수 있다.

4. zkSync 인증 확인하기

zkSync 계정을 생성했다면 인증 여부를 확인해야한다. 지갑의 key 가 존재한다면 key 가 singing key에 등록이 되어있는지 확인 후 changePubkey 에 저장한다.

async function registerAccount (wallet) {
  console.log(`Registering the ${wallet.address()} account on zkSync`)
  if(!await wallet.isSigningKeySet()){
    if(await wallet.getAccountId() === undefined){
        throw new Error('Unknown account')
    }
    const changePubkey = await wallet.setSigningKey()
    await changePubkey.awaitReceipt()
  }
}

5. zkSync 에 재화를 넣어보자

Priority Operations

  • 이더리움 네트워크에서 작동되는 작업들

Transactions

  • zkSync 에서 사용되는 활동들

zkSync에서 transaction 이 사용되는 원리

zkSync 에 트랜잭션을 보낼때 Promise 를 사용하게 된다. 트랜잭션의 작업을 믿는다면 따로 블록이 생성될 때까지 기다릴 필요없다.

zkSync 트랜잭션은 SNARK 증명 방식으로 검증하고, 이더리움 스마트 컨트랙트에 등록될 때까지 10분 소요된다.

async function depositToZkSync(zkSyncWallet, token, amountToDeposit, ethers){
    const deposit = await zkSyncWallet.depositToSyncFromEthereum({
        depositTo: zkSyncWallet.address(),
        token: token,
        amount: ethers.utils.parseEther(amountToDeposit)
    })
    try{
        await deposit.awaitReceipt()
    }catch(error){
        console.log('Error while awaiting confirmation from the zkSync operators.')
        console.log(error)
    }
}
  • deposit 객체를 만들기 위해 이더리움 wei 단위로 변경해야한다.
  • awaitReceipt 함수를 이용해 트랜잭션이 정상 작동한지 확인 한다.

6. zkSync 에서 애셋 옮기기

애셋을 옮기기 위해서는 두 가지 과정으로 나눌 수 있다.

  1. syncTransfer 함수를 통해 zkSync 지갑과 수취인의 주소, 애셋 정보 및 fee 를 전달할 수 있다.
  2. awaitReceipt 를 통해 정상 작동했는지 확인할 수 있다.

zkSync에서 전송 작업의 정밀도는 제한되어 있으므로 전송량은 5바이트 길이의 부동 소수점

지불한 수수료는 2바이트 길이의 부동 소수점 표현 으로 패키징해야한다.

async function transfer (from, toAddress, amountToTransfer, transferFee, token, zksync, ethers) {
    const closestPackableAmount = zksync.utils.closestPackableTransactionAmount(ethers.utils.parseEther(amountToTransfer))
    const closestPackableFee = zksync.utils.closestPackableTransactionFee(ethers.utils.parseEther(transferFee))
    const transfer = await from.syncTransfer(
        {
            to:toAddress,
            token: token,
            amount : closestPackableAmount,
            fee:closestPackableFee
        }
    )
    const transferReceipt = await transfer.awaitReceipt()
    console.log('Got transfer receipt.')
    console.log(transferReceipt)
}

7. Transfer Fee

Transfer fee 를 계산하는 방법을 배우자

fee 의 종류

  1. off-chain fee
    • 계산 및 저장 비용을 뜻하며, 불가변성이다.
  2. on-chain fee
    • 이더리움에서 SNARK 를 검증하는데 드는 비용이다. 가스 가격에 따라 달라지기에 가변적이다.
async function getFee(transactionType, address, token, zkSyncProvider, ethers){
    const feeInWei = await zkSyncProvider.getTransactionFee(transactionType, address, token)
    return ethers.utils.formatEther(feeInWei.totalFee.toString())
}
  • getTransactionFee 로 구한 wei 는 매우 길기 때문에 formatEther 함수로 처리해준다.

8. Withdraw to Ethereum

세 가지 과정으로 Withdraw 할 수 있다.

  1. closestPackableAmount 를 계산
  2. wallet.withdrawFromSyncToEthereum 으로 withdraw를 계산
  3. Receipt 검증 완료
async function withdrawToEthereum (wallet, amountToWithdraw, withdrawalFee, token, zksync, ethers) {
    const closestPackableAmount = zksync.utils.closestPackableTransactionAmount(ethers.utils.parseEther(amountToWithdraw))
    const closestPackableFee = zksync.utils.closestPackableTransactionFee(ethers.utils.parseEther(withdrawalFee))
    const withdraw = await wallet.withdrawFromSyncToEthereum({
        ethAddress : wallet.address(),
        token : token,
        amount : closestPackableAmount,
        fee : closestPackableFee
    })
    await withdraw.awaitVerifyReceipt()
  console.log('ZKP verification is complete')
}

9. Account Balances

계정의 Balance 에는 두가지가 존재한다.

  1. commit balance
    1. 거래 내역을 zkSync 의 스마트 컨트랙트에 포함시킨다.
    2. 즉시 사용 가능
    3. 이더리움 메인넷에 기록되지만 검증되지 않았다.
  2. verify balance
    1. 블록을 최종 검증 상태로 확정
    2. SNARK 로 블록을 검증
    3. 최종적으로 보장된 verify 금액
async function displayZkSyncBalance (wallet, ethers){
    const state = await wallet.getAccountState()
    if(state.committed.balances.ETH){
        console.log(`Commited ETH balance for ${wallet.address()}: ${ethers.utils.formatEther(state.committed.balances.ETH)}`)
    }else{
        console.log(`Commited ETH balance for ${wallet.address()}: 0`)
    }
    if(state.verified.balances.ETH){
        console.log(`Verified ETH balance for ${wallet.address()}: ${ethers.utils.formatEther(state.verified.balances.ETH)}`)
    }else{
        console.log(`Verified ETH balance for ${wallet.address()}: 0`)
    }
}

10. 가게주인 밥 - 블록체인과 연결

위에서 만든 utils.js 를 이용해 클라이언트와 연결해보자

(async () => {
  const ethers = require('ethers')
  const zksync = require('zksync')
  const utils = require('./utils')

  // Start here
  const zkSyncProvider = await utils.getZkSyncProvider(zksync, process.env.NETWORK_NAME)
  const ethersProvider = await utils.getEthereumProvider(ethers, process.env.NETWORK_NAME)
})()
  • zkSyncProvider, ethersProvider 을 util.js 에서 불러와야 한다.

11. 가게주인 밥 - 밥의 지갑 주소를 가져오다

const bobRinkebyWallet = new ethers.Wallet(process.env.BOB_PRIVATE_KEY, ethersProvider)
console.log(`Bob's Rinkeby address is: ${bobRinkebyWallet.address}`)
console.log(`Bob's initial balance on Rinkeby is: ${ethers.utils.formatEther(await bobRinkebyWallet.getBalance())}`)
const bobZkSyncWallet = await utils.initAccount(bobRinkebyWallet, zkSyncProvider, zksync) 
  • 밥에게 필요한 지갑주소와 zkSync 지갑 주소를 가져온다.

12. 잔액 업데이트

zkSync 에는 잔액이 업데이트 됐음을 알리는 메커니즘이 없기 때문에 setInterval 을 통해 잔액을 주기적으로 최신화해야한다.

  process.on('SIGINT', () => {
    console.log('Disconnecting')
    // Disconnect
    process.exit()
  })
  setInterval(async () => {
    // Call the `utils.displayZkSyncBalance` function
    await utils.displayZkSyncBalance(bobZkSyncWallet, ethers);
    console.log('---')
  }, SLEEP_INTERVAL)

13. 계좌 등록

상점을 사용할 앨리스의 계좌를 등록해야한다.

앨리스가 상점을 방문한 이후의 시나리오는 다음과 같다.

  1. 앨리스는 zkSync 계좌를 이용해 이더리움을 배포하려고한다.
  2. 퍼블릭 키를 등록해 zkSync 로 거래할 수 있게 하려고 한다.
  3. zkSync 를 이용해 밥과 거래를 할 것 이다.
  4. 이더리움 코인으로 zkSync 에서 이더리움으로 옮겨 남은 금액을 확인해야한다.
(async () => {
  const ethers = require('ethers')
  const zksync = require('zksync')
  const utils = require('./utils')
  const token = 'ETH'
  const amountToDeposit = '0.05'
  const amountToTransfer = '0.02'
  const amountToWithdraw = '0.002'

  const zkSyncProvider = await utils.getZkSyncProvider(zksync, process.env.NETWORK_NAME)
  const ethersProvider = await utils.getEthereumProvider(ethers, process.env.NETWORK_NAME)
  console.log('Creating a new Rinkeby wallet for Alice')
  const aliceRinkebyWallet = new ethers.Wallet(process.env.ALICE_PRIVATE_KEY, ethersProvider) // Account #78
  console.log(`Alice's Rinkeby address is: ${aliceRinkebyWallet.address}`)
  const aliceInitialRinkebyBalance = await aliceRinkebyWallet.getBalance()
  console.log(`Alice's initial balance on Rinkeby is: ${ethers.utils.formatEther(aliceInitialRinkebyBalance)}`)

  console.log('Creating a zkSync wallet for Alice')
  const aliceZkSyncWallet = await utils.initAccount(aliceRinkebyWallet, zkSyncProvider, zksync)

  console.log('Depositing')
  // Start here
    await utils.depositToZkSync(aliceZkSyncWallet, token, amountToDeposit, ethers)
    await utils.displayZkSyncBalance(aliceZkSyncWallet, ethers)
    await utils.registerAccount(aliceZkSyncWallet)
})()

14. zkSync 로 결제해보자

utils.getFee, utils.transfer 함수를 이용해 결제 시나리오를 만들어보자.

const transferFee = await utils.getFee('Transfer', aliceRinkebyWallet.address, token, zkSyncProvider, ethers)
await utils.transfer(aliceZkSyncWallet, process.env.BOB_ADDRESS, amountToTransfer, transferFee,token,zksync,ethers)

15. withdraw

결제와 마찬가지로 withdraw 도 구현할 수 있다.

const withdrawalFee = await utils.getFee('Withdraw', aliceRinkebyWallet.address, token,zkSyncProvider, ethers)
await utils.withdrawToEthereum(aliceZkSyncWallet, amountToWithdraw, withdrawalFee, token,zksync,ethers)
반응형

'BlockChain > Solidity' 카테고리의 다른 글

[DP/NFT] 4. 리액트 세팅  (0) 2022.09.05
[DP/NFT] 3. SaleAnimalToken 작성  (0) 2022.09.05
[DP/NFT] 2. Minting contract 작성  (0) 2022.09.05
[DP/NFT] 1. Install Solidity & Metamask  (0) 2022.08.25
반응형

벌써 2024년이 지났다. 2024년 서류를 난사한 나의 흔적들을 되돌아보자. 정말많은 일들이 있었다. 싸피에서 1학기하며 전보다 많은 서류를 내지는 못했다고 생각했지만 그래도 은근 많은 서류를 낸 것 같다.

 

서류합격


신한카드
삼성SDS
LG전자
카카오모빌리티
케이뱅크
미라콤아이앤씨
엘케이브라더스
대한항공

 

코딩테스트 합격


신한카드

 

코딩테스트 탈락


LG전자
삼성SDS
케이뱅크
미라콤아이앤씨

 

1차면접합격


엘케이 브라더스

 

탈락


신한카드

 

최종합격


엘케이 브라더스

서류 후기

43개의 지원서 중 8개 기업에 합격했다. 합격률은 18.6%. 상반기는 16%인데 부트캠프를 같이 썼던 것을 고려하면 하반기 합격률은 많이 올랐다. 어느정도 경험이 쌓이고 자기소개서 작성하는 노하우가 쌓여 양질의 데이터가 생긴 것 같다. 싸피에서 취업 스터디를 다니며 첨삭과 서류 작성 노하우를 공유한 덕인지 좋은 결과가 나온 것 같다.
하지만, 종종 느낀점은 실무 경험이 아닌 프론트엔드 경험으로는 왠만한 큰 기업에 성이 차지 않아 보인다. 취업 스터디 애들만 봐도 경력이 있는 친구들이 서류 합격률도 높았다.

코딩테스트 후기

이번 코딩테스트는 처참한 결과가 많았다. 백준 플레티넘을 달성했지만 코딩테스트 성과가 좋지 않았다. 우선 삼성에서 진행하는 코딩테스트는 이번에 너무 어려웠다. 삼성 그룹이 많이 힘들어서 문제가 어렵다고들 했는데 그말이 맞는것 같았다. 미라콤 시험을 볼때는 그나마 괜찮았는데 내부 테스트케이스에서 시간초과가 나와 탈락했다. ㅠㅠ
케이뱅크에서는 모든 문제를 맞췄는데 왜 일까 탈락했다. 코드리뷰 형식의 코테라 그럴 수도 있는데 내 생각에는 코딩테스트 시험 도중에 워치를 착용한 것을 까먹고 시험보다가 중간에 인지해 풀렀던게 탈락 요소였던 것 같기도하다.. 화장실 갈때 시간 보려고 착용한건데 ㅠㅠ 에휴

면접 후기

큰 기업으로는 신한카드 면접을 볼 수 있었다. 토론, 기술, PT 면접으로 구성된 원데이 면접이었는데 다른건 몰라도 기술면접때 신나게 털려서 내가 기술적으로 얼마나 부족한지 알 수 있었던 면접이었다. 이후에 프론트엔드 기술에 대해 더 열심히 공부할 수 있었다.
엘케이 브라더스 면접에서는 기술적인 부분보다 같이 갈 수 있는지 도메인 지식에 대한 질문들이 주로 이루었다. 블록체인 플랫폼에 대해 생각을 많이 했던 터라 괜찮은 면접을 볼 수 있었던 것 같다.

최종 후기

결과적으로 1승 엘케이브라더스에 합류하게 되었다. 블록체인 쪽으로 관심있었지만 신입자리를 찾을 수 없던 내게 유일한 희망.. 정말 기분이 좋다. 싸피 덕분에 잡페어 프로그램을 함께할 수 있었고, 좋은 기업에 합격할 수 있게 되었다. 비록, 싸피 2학기를 함께하지 못하지만 나에게 더 빛나는 미래가 있을 거라고 생각한다.

반응형

'Day Life' 카테고리의 다른 글

2023 회고  (1) 2023.12.31
[MSI 모던14] 블루투스, 와이파이 드라이버 어댑터 설치  (1) 2022.10.05
2022/08/06  (0) 2022.08.06
21.08.13  (0) 2021.08.13
실버 달성  (0) 2021.04.27

+ Recent posts