๋ฌธ์ œ

๊ทธ๋ฆ‡์„ ๋ฐ”๋‹ฅ์— ๋†“์•˜์„ ๋•Œ ๊ทธ ๋†’์ด๋Š” 10cm ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‘ ๊ฐœ์˜ ๊ทธ๋ฆ‡์„ ๊ฐ™์€ ๋ฐฉํ–ฅ์œผ๋กœ ํฌ๊ฐœ๋ฉด ๊ทธ ๋†’์ด๋Š” 5cm๋งŒ ์ฆ๊ฐ€๋œ๋‹ค. ๋งŒ์ผ ๊ทธ๋ฆ‡์ด ์„œ๋กœ ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ ์Œ“์ด๋ฉด ๋†’์ด๋Š” ๊ทธ๋ฆ‡๋งŒํผ, ์ฆ‰ 10cm ๋Š˜์–ด๋‚œ๋‹ค. ๊ทธ๋ฆ‡์„ ๊ด„ํ˜ธ ๊ธฐํ˜ธ๋กœ ๋‚˜ํƒ€๋‚ด์–ด ์„ค๋ช…ํ•ด๋ณด์ž. ํŽธ์˜์ƒ ๊ทธ๋ฆ‡์ด ์Œ“์—ฌ์ง€๋Š” ๋ฐฉํ–ฅ์€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ๊ทธ๋ฆผ์—์„œ ‘(’์€ ๊ทธ๋ฆ‡์ด ๋ฐ”๋‹ฅ์— ๋ฐ”๋กœ ๋†“์ธ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ‘)’์€ ๊ทธ๋ฆ‡์ด ๊ฑฐ๊พธ๋กœ ๋†“์ธ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๋งŒ์ผ ๊ทธ๋ฆ‡์ด ํฌ๊ฐœ์ง„ ๋ชจ์–‘์ด ((((์™€ ๊ฐ™๋‹ค๋ฉด ์ „์ฒด์˜ ๋†’์ด๋Š” 25cm๊ฐ€ ๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ฒ˜์Œ ๋ฐ”๋‹ฅ์— ์žˆ๋Š” ๊ทธ๋ฆ‡์˜ ๋†’์ด๊ฐ€ 10cm์ด๊ณ  ์ดํ›„ ๊ฐ™์€ ๋ฐฉํ–ฅ์œผ๋กœ 3๊ฐœ์˜ ๊ทธ๋ฆ‡์ด ํฌ๊ฐœ์ ธ ์žˆ์œผ๋ฏ€๋กœ ๋Š˜์–ด๋‚œ ๋†’์ด๋Š” 5+5+5=15 ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ()()์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋ผ๋ฉด ๊ทธ ๋†’์ด๋Š” 10*4=40cm๊ฐ€ ๋œ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„์€ ์ž…๋ ฅ์— ์ฃผ์–ด์ง„ ๋ชจ์–‘๋Œ€๋กœ ๊ทธ๋ฆ‡์„ ์Œ“์„ ๋•Œ ์ตœ์ข…์˜ ์ „์ฒด ๊ทธ๋ฆ‡ ๋†’์ด๋ฅผ ๊ณ„์‚ฐํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ์ฆ‰ ์ฒ˜์Œ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๊ฐ ๊ทธ๋ฆ‡์˜ ๋ฐฉํ–ฅ์€ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ์‹œ

 

 

ํ•ด๊ฒฐ

const fs = require('fs');
const { start } = require('repl');
const stdin = (process.platform === 'linux'
    ? fs.readFileSync('/dev/stdin').toString()
    : `((((` 
).match(/[^\r\n]+/g);

const input = (() => {
  let line = 0;
  return () => stdin[line++];
})();

const [s] = input().split(' ')
const dishes = s.split('')
let total = 0;

for (let i=0; i<dishes.length; i++){

  if (i===0 ){
    total += 10
  } else if (dishes[i] == dishes[i-1]){
    total += 5
  } else if (dishes[i] != dishes[i-1] && i != dishes.length){
    total += 10
  }
  
}

console.log(total)

1. java ์„ค์น˜ ๊ฐ€๋Šฅ ๋ฆฌ์ŠคํŠธ ๊ฒ€์ƒ‰

yum list java *

java-11-amazon-corretto.x86_64 

 

 

2. EC2์— java 11 ์„ค์น˜

sudo yum install java-11-amazon-corretto.x86_64

 

3. java ๋ฒ„์ „ ํ™•์ธ

java -version

์œ„์น˜๊ธฐ๋ฐ˜ ๊ณต๋™๊ตฌ๋งค ํ”Œ๋žซํผ, N๋นต

 

๐Ÿž N๋นต ์†Œ๊ฐœ

์„ค๋ช…:  ํ˜ผ์ž์‚ฌ๋Š” ๊ฒƒ๋ณด๋‹ค ๊ฐ™์ด ๊ตฌ๋งคํ•˜๋ฉด ๋” ์ด๋“์ด๋ผ๋ฉด?! ์ด์›ƒ๊ณผ ํ•จ๊ป˜ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๋™๊ตฌ๋งค ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

์ œ์ž‘: 2022.04.22 ~ 2022.06.02 

 

๐Ÿ‘‰ N๋นต ์„œ๋น„์Šค ๋ฐ”๋กœ๊ฐ€๊ธฐ    https://www.nbbang.site/

๐Ÿ“Œ ๋…ธ์…˜ ๋ฐ”๋กœ๊ฐ€๊ธฐ

 

์‹œ์—ฐ์˜์ƒ: ๐ŸŽฌ์„œ๋น„์Šค ์‹œ์—ฐ ๋ฐ ๋ฐœํ‘œ ์˜์ƒ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

๊นƒํ—ˆ๋ธŒ: Front Github  /  Backend  Github

 

 


 

๐Ÿ“ ์•„ํ‚คํ…์ฒ˜

 

 


โš’๏ธ ๊ธฐ์ˆ ์Šคํƒ

์ด๋ฆ„ ์„ค๋ช…
AWS EC2 ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค
Node.js JS ์‹คํ–‰ ํ™˜๊ฒฝ
Express Node.js WEB Framework
Mysql ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
GIt ๋ฒ„์ „ ๊ด€๋ฆฌ

 


๐Ÿ“– ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์ด๋ฆ„ ์„ค๋ช…
cors Request resource ์ œํ•œ
dotenv ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •
bcrypt ํŒจ์Šค์›Œ๋“œ ์•”ํ˜ธํ™”
jsonwebtoken ๋กœ๊ทธ์ธ ํ† ํฐ ๋ฐœ๊ธ‰
multer ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
multer-S3-transform ์‚ฌ์ง„ ํŒŒ์ผ ์—…๋กœ๋“œ 
sharp ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ฆˆ ์ฒ˜๋ฆฌ
aws-sdk S3 ์ ‘๊ทผ
socket.io ์›น์†Œ์ผ“ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
https https ์—ฐ๊ฒฐ
http http ์—ฐ๊ฒฐ
nodemailer ํšŒ์› ์ธ์ฆ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ฐพ๊ธฐ ๋ฉ”์ผ๋ง
pm2 ์ž๋™๋ฐฐํฌ
prettier ์ฝ”๋“œ ์Šคํƒ€์ผ ํ†ต์ผ

 


๐Ÿ”Ž ํ•ต์‹ฌ๊ธฐ๋Šฅ

์ขŒ: ์ง€๋„  /  ์šฐ: ์ฑ„ํŒ…

 

โœ… ์ง€๋„ (kakao Map)

  • ์‚ฌ์šฉ์ž ์œ„์น˜ ๊ธฐ์ค€, ๊ถŒ์—ญ๋ณ„ ๊ฒŒ์‹œ๊ธ€ ํ™•์ธ๊ฐ€๋Šฅ
  • ์ง€๋„ ๋งˆ์ปค ์„ ํƒ์‹œ, ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์˜ ์ƒ์„ธ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ฃผ๋ฉฐ ์œ„์น˜๋กœ ์ด๋™

โœ… ์ฑ„ํŒ… (Socket.io)

  • ๊ฐ ๊ฒŒ์‹œ๋ฌผ์— ๋”ฐ๋ฅธ ์ฑ„ํŒ…๋ฐฉ ์ƒ์„ฑ
  • ์ƒ๋Œ€๋ฐฉ์ด ์ฑ„ํŒ… ์ž…๋ ฅ์‹œ, ‘์ž…๋ ฅ์ค‘’์ด๋ผ๋Š” ์ƒํƒœ ํ™•์ธ ๊ฐ€๋Šฅ
  • ์ƒ๋Œ€๋ฐฉ์ด ์ž…์žฅ/ํ‡ด์žฅ์‹œ ํ™•์ธ ๊ฐ€๋Šฅ
  • ์ฑ„ํŒ…์ฐฝ ์ƒ๋‹จ์— ์œ„์น˜ ์‹œ, ์ƒˆ๋กœ์šด ์ฑ„ํŒ…๋ฉ”์„ธ์ง€๋ฅผ ์Šคํฌ๋กค๋‹ค์šด ์—†์ด ํ™•์ธ๊ฐ€๋Šฅ

 

์ขŒ: ์ฐธ๊ฐ€์ž ์ถ”๊ฐ€๊ธฐ๋Šฅ  /  ์šฐ: ์•Œ๋ฆผ

โœ… ์ฐธ๊ฐ€์ž ์ถ”๊ฐ€๊ธฐ๋Šฅ

  • ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฑ„ํŒ… ์ฐธ์—ฌ์ž ํ™•์ธ ๊ฐ€๋Šฅ
  • ๋ฐฉ์žฅ์€ ๋Œ€๊ธฐ์ž โ‡„ ๊ฑฐ๋ž˜์ž๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
  • ๊ฑฐ๋ž˜์ž์ธ ๊ฒฝ์šฐ ์ทจ์†Œ ๊ฐ€๋Šฅ

โœ… ์•Œ๋ฆผ (Socket.io)

  • ํ•ด๋‹น ์ฑ„ํŒ…๋ฐฉ์— ์žˆ์ง€์•Š๊ฑฐ๋‚˜ ์˜คํ”„๋ผ์ธ ์ƒํƒœ์‹œ, ์•Œ๋ฆผ ์†ก์‹ 
    • ์ƒˆ๋กœ์šด ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ์‹œ
    • ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์— ๊ฑฐ๋ž˜์ž๋กœ ํ™•์ •์‹œ
    • ๊ฑฐ๋ž˜์ž๊ฐ€ ๊ฑฐ๋ž˜์ทจ์†Œ์‹œ
    • ๊ฑฐ๋ž˜ ํ™•์ •ํ›„ ๋ฆฌ๋ทฐ์ž‘์„ฑ ์š”์ฒญ์‹œ

 

์ขŒ: ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ ๊ธฐ์ค€์œผ๋กœ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ /  ์šฐ: ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ๋‚ด์ •๋ณด ์กฐํšŒ ๊ฐ€๋Šฅ

 

โœ… ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ ๊ธฐ์ค€์œผ๋กœ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ

 

โœ… ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ๋‚ด์ •๋ณด ์กฐํšŒ ๊ฐ€๋Šฅ

  • ๋ณธ์ธ์ด ์ž‘์„ฑํ•œ ๊ณต๊ตฌ / ์ฐธ์—ฌํ•œ ๊ณต๊ตฌ / ์ฐœํ•œ ๊ณต๊ตฌ๋ฅผ ํ™•์ธ ๊ฐ€๋Šฅ

 

์ขŒ: ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ๋‚ด ์ •๋ณด ๋ณ€๊ฒฝ ๊ธฐ๋Šฅ /  ์šฐ: ๊ธ€ ์ž‘์„ฑ์ž์˜ ๊ณต๊ตฌํ›„๊ธฐ ํ™•์ธ ๊ธฐ๋Šฅ

โœ… ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ๋‚ด ์ •๋ณด ๋ณ€๊ฒฝ ๊ธฐ๋Šฅ

  • ํ”„๋กœํ•„ ์‚ฌ์ง„ / ๋‹‰๋„ค์ž„ / ์ƒํƒœ๋ฉ”์‹œ์ง€ ๋ณ€๊ฒฝ๊ฐ€๋Šฅ
  • ํšŒ์› ํƒˆํ‡ด ๊ฐ€๋Šฅ

โœ… ๊ธ€ ์ž‘์„ฑ์ž์˜ ๊ณต๊ตฌํ›„๊ธฐ ํ™•์ธ ๊ธฐ๋Šฅ

  • ์ž‘์„ฑ์ž์˜ ๋งˆ์ดํŽ˜์ด์ง€์—์„œ ๊ณต๊ตฌ ํ›„๊ธฐ ํ™•์ธ ๊ฐ€๋Šฅ

๐Ÿงฉ ERD


๐Ÿฅ– API ์„ค๊ณ„

โœจ API ์„ค๊ณ„ ์ž์„ธํžˆ๋ณด๊ธฐ

 


๐Ÿšจ ์ด์Šˆ ๋ฐ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

๋ฆฌ์‚ฌ์ด์ง•์œผ๋กœ ์ธ๋„ค์ผ ์ด๋ฏธ์ง€ ์ƒ์„ฑ

 

๋„์ž…์ด์œ 

  • ์‚ฌ์ด๋“œ ๋ฐ”, ์ƒ์„ธ๋ชจ๋‹ฌ, ์ฑ„ํŒ…, ์ง€๋„ ๋ชจ๋‹ฌ๊ณผ ๊ฐ™์ด ๋งŽ์€ ์ด๋ฏธ์ง€๊ฐ€ ๋œจ๊ฒŒ ๋˜๋Š”๋ฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋ถˆํŽธํ•จ์„ ๋Š๋ผ์ง€ ์•Š๊ณ  ๋น ๋ฅด๊ฒŒ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ

์„ ํƒ์ง€

  • 1์•ˆ) ํด๋ผ์ด์–ธํŠธ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์••์ถ•ํ•ด์„œ ์ „๋‹ฌํ•ด์ฃผ๊ธฐ
  • 2์•ˆ) ์„œ๋ฒ„์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋ฆฌ์‚ฌ์ด์ง•ํ•ด์„œ ์ €์žฅํ•˜๊ธฐ

์˜๊ฒฌ์กฐ์œจ

  •  ํด๋ผ์ด์–ธํŠธ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์••์ถ•ํ•ด์„œ ์ „๋‹ฌ์„ ํ•˜๋”๋ผ๋„ ์ด๋ฏธ์ง€๋ฅผ ํ™•๋Œ€์‹œ ์›๋ณธ์ด๋ฏธ์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์›๋ณธ๊ณผ ๋ฆฌ์‚ฌ์ด์ง•๋œ ์ด๋ฏธ์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

์˜๊ฒฌ๊ฒฐ์ •

  • ํด๋ผ์ด์–ธํŠธ์—์„œ ์›๋ณธ์ด๋ฏธ์ง€ ์ „๋‹ฌ ์‹œ, ์„œ๋ฒ„์—์„œ ์›๋ณธ๊ณผ ๋ฆฌ์‚ฌ์ด์ง• ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•จ. ์ฑ„ํŒ…์—์„œ ๋ณด์ด๋Š” ์œ ์ €์ด๋ฏธ์ง€๋‚˜, ์‚ฌ์ด๋“œ ๋ฐ”์—์„œ ๋ณด์ด๋Š” ์ด๋ฏธ์ง€๋Š” 110*110์˜ ์‚ฌ์ด์ฆˆ๋กœ ์ „๋‹ฌ, ์ƒ์„ธํŽ˜์ด์ง€์˜ ์ด๋ฏธ์ง€๋Š” ์›๋ณธ ์ด๋ฏธ์ง€๋กœ ์ „๋‹ฌํ•˜๊ธฐ๋กœ ํ•จ.

 

 

 

 

 

+ Recent posts