ํŒŒ์ผ๊ณผ ํด๋”๊ฐ€ ๋“ค์–ด์žˆ๋Š” ํด๋” DIR ๊ตฌ์กฐ

[zipDirDownLoad]

๋Œ€์ƒ ํด๋”๋ฅผ ์••์ถ•ํ•ด zip ํŒŒ์ผ๋กœ ์ƒ์„ฑ(compressDir, compressFile)ํ›„, ์ƒ์„ฑํ•œ zip ํŒŒ์ผ์„ response์— ๋‹ด์•„์„œ client์— ๋ณด๋‚ธ๋‹ค.

package com.study.controller;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.io.File;

   /**
    * @param targetDirPath ์••์ถ•ํ•  ํด๋” ๊ฒฝ๋กœ
    * @param outputPath ์ถœ๋ ฅํŒŒ์ผ ๊ฒฝ๋กœ
    * @param outputFileName ์ถœ๋ ฅํŒŒ์ผ๋ช…
    * @description ํด๋” ์••์ถ• ๋ฉ”์†Œ๋“œ
    */
    @SuppressWarnings("resource")
    protected void zipDirDownLoad(HttpServletResponse response, String targetDirPath, String resultPath, String resultFileName) throws Exception {
        // ํŒŒ์ผ๋ช…์— .zip์ด ์—†๋Š” ๊ฒฝ์šฐ, .zip ์„ ๋ถ™์—ฌ์ค€๋‹ค.
        int pos = resultFileName.lastIndexOf(".") == -1 ? resultFileName.length() : resultFileName.lastIndexOf(".");
        if (!resultZipName.substring(pos).equalsIgnoreCase(".zip")) {
            resultFileName += ".zip";
            }
        
        // ์••์ถ• ๋Œ€์ƒ ํŒŒ์ผ ์กด์žฌ ์—ฌ๋ถ€์ฒดํฌ
        File targetDir = new File(targetDirPath);
        if (!targetDir.exists()) {
            response.getWriter().println("<script>alert('File Not Found');history.back();</script>");
            logger.error("TargetDir does not exist.");
            }

        // ํŒŒ์ผ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ
        FileOutputStream fos = null;
        // ์••์ถ•ํŒŒ์ผ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ
        ZipOutputStream zos = null;
        try {
            fos = new FileOutputStream(new File(resultPath + resultFileName));  // ํŒŒ์ผ ๊ฐ์ฒด(new File(resultPath + resultFileName))์— ์“ธ ํŒŒ์ผ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ
            zos = new ZipOutputStream(fos); // zip output stream
            
            // ๋””๋ ‰ํ† ๋ฆฌ ๊ฒ€์ƒ‰๋ฅผ ํ†ตํ•œ ํ•˜์œ„ ํŒŒ์ผ๊ณผ ํด๋” ๊ฒ€์ƒ‰ ๋ฐ ์••์ถ•
            compressDir(targetDir, targetDir.getPath(), zos);
            
            } finally {
                if (zos != null) zos.close();
                if (fos != null) fos.close();
                }
        
        // ์••์ถ• ํŒŒ์ผ์„ response๋กœ ๋ณด๋‚ด๊ธฐ
        File resultZipFile = new File(resultPath + resultFileName);
        FileInputStream fis = new FileInputStream(resultZipFile);
        
        // ํŒŒ์ผ๋ช… ์ธ์ฝ”๋”ฉ ์„ค์ •
        String userAgent = request.getHeader("User-Agent");
        if(userAgent.contains("Edge") || userAgent.contains("MSIE") || userAgent.contains("Trident")) {
            resultZipName = URLEncoder.encode(resultZipName, "UTF-8").replace("\\+", "%20");
        } else if(userAgent.contains("Chrome") || userAgent.contains("Opera") || userAgent.contains("Firefox")) {
            resultZipName = new String(resultZipName.getBytes("UTF-8"), "ISO-8859-1");
        }
        
        byte[] byteFile = new byte[(int) resultZipFile.length()];
        fis.read(byteFile);    // ์ฃผ์–ด์ง„ ๋ฐฐ์—ด byteFile๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์„œ byteFile์— ์ €์žฅํ•˜๊ณ  ์ฝ์€ ๋ฐ”์ดํŠธ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
        
        response.setContentType("application/zip");
        response.setContentLength(byteFile.length);
        
        response.setHeader("Content-Disposition",  "attachment; filename=\""+resultFileName+"\"");
        response.getOutputStream().write(byteFile); // ์ฃผ์–ด์ง„ ๋ฐฐ์—ด byteFile์— ์ €์žฅ๋œ ๋ชจ๋“  ๋‚ด์šฉ์„ ์ถœ๋ ฅ์†Œ์Šค์— ์“ด๋‹ค.
        
        if(fis != null) fis.close();
        if(resultZipFile.exists()) resultZipFile.delete();
    }

 

[ compressDir ]

๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํŒŒ์ผ ์ธ์ž๋กœ ๋ฐ›์•„์„œ ๋‚ด์šฉ ํŒŒ์ผ๋“ค์˜ ๋””๋ ‰ํ† ๋ฆฌ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ

    /**
     * @param file ํ˜„์žฌ ํŒŒ์ผ
     * @param resultRootPath ๋ฃจํŠธ ๊ฒฝ๋กœ
     * @param zos  ์••์ถ• ์ŠคํŠธ๋ฆผ
     * @description ๋””๋ ‰ํ† ๋ฆฌ ํƒ์ƒ‰ ๋ฐ ๋ถ„๊ธฐ
     */
    private void compressDir(File file, String resultRootPath, ZipOutputStream zos) throws Exception {
        // ์ธ์ž๋กœ ์ฃผ์–ด์ง„ ํŒŒ์ผ์ด ๋””๋ ‰ํ† ๋ฆฌ์ธ์ง€ ํŒŒ์ผ์ธ์ง€์— ๋”ฐ๋ผ ๋ถ„๊ธฐ
        if (file.isDirectory()) {
            // ๋””๋ ‰ํ† ๋ฆฌ์ผ ๊ฒฝ์šฐ ์žฌ๊ท€
            File[] files = file.listFiles();
            for (File f : files) {
                compressDir(f, resultRootPath, zos);
                }
            file.delete();
            } else {    // ํŒŒ์ผ์ผ ๊ฒฝ์šฐ ์••์ถ•์„ ํ•œ๋‹ค.
                compressFile(file, resultRootPath, zos);
                }
	}

 

[ compressFile ]

๋ถ„๊ธฐ์ฒ˜๋ฆฌ ์ค‘ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ์ผ ๊ฒฝ์šฐ ์‹ค์งˆ์ ์œผ๋กœ ์••์ถ• ์ˆ˜ํ–‰

    /**
     * @param file ํ˜„์žฌ ํŒŒ์ผ
     * @param resultRootPath ๋ฃจํŠธ ๊ฒฝ๋กœ
     * @param zos  ์••์ถ• ์ŠคํŠธ๋ฆผ
     * @description ํŒŒ์ผ ์••์ถ• ๋ฉ”์„œ๋“œ
     */
    private void compressFile(File file, String resultRootPath, ZipOutputStream zos) throws Exception {
        FileInputStream fis = null;
        try {
            String zipFileName = file.getPath().replace(resultRootPath + "\\", "");
            // ํŒŒ์ผ์„ ์ฝ์–ด๋“ค์ž„
            fis = new FileInputStream(file);
            // Zip์—”ํŠธ๋ฆฌ ์ƒ์„ฑ
            ZipEntry zipentry = new ZipEntry(zipFileName);  // zipFileName์„ ์ด๋ฆ„์œผ๋กœ ๊ฐ€์ง€๋Š” zipEntry ์ƒ์„ฑ
            // ์ŠคํŠธ๋ฆผ์— ๋ฐ€์–ด๋„ฃ๊ธฐ(์ž๋™ ์˜คํ”ˆ)
            zos.putNextEntry(zipentry);         // zip entry๋ฅผ ์“ฐ๊ณ , ์—”ํŠธ๋ฆฌ ๋ฐ์ดํ„ฐ ์‹œ์ž‘์— stream์„ ์œ„์น˜์‹œํ‚ด
            int length = (int) file.length();   // ํŒŒ์ผ์˜ ๊ธธ์ด
            byte[] buffer = new byte[length];   // ํŒŒ์ผ์˜ ๊ธธ์ด๋งŒํผ์˜ ๋ฒ„ํผ
            fis.read(buffer, 0, length);        // ์ตœ๋Œ€ length๊ฐœ์˜ byte๋ฅผ ์ฝ์–ด์„œ, ๋ฐฐ์—ด buffer์˜ ์ง€์ •๋œ ์œ„์น˜(0)๋ถ€ํ„ฐ ์ €์žฅํ•˜๊ณ  ์ฝ์€ ๋ฐ”์ดํŠธ ์ˆ˜ ๋ฐ˜ํ™˜
            zos.write(buffer, 0, length);       // ์ฃผ์–ด์ง„ ๋ฐฐ์—ด buffer์— ์ €์žฅ๋œ ๋‚ด์šฉ ์ค‘์—์„œ 0๋ฒˆ์งธ ๋ถ€ํ„ฐ length๋งŒํผ๋งŒ์„ ์ฝ์–ด์„œ ์ถœ๋ ฅ์†Œ์Šค์— ์“ด๋‹ค.
            zos.closeEntry();                   // ํ˜„์žฌ zip entry๋ฅผ ๋‹ซ๊ณ  ๋‹ค์Œ ์—”ํŠธ๋ฆฌ ์ž‘์„ฑ์„ ์œ„ํ•ด ์œ„์น˜ํ•จ 
            } finally {
                if (fis != null) fis.close();
                if (file != null && file.exists())file.delete();
                }
	}

๋ฐ˜์‘ํ˜•
๋ฐฐ์—ด Array

๋ฐฐ์—ด Array

๊ฐ™์€ ํƒ€์ž…์˜ ์—ฌ๋Ÿฌ ๋ณ€์ˆ˜๋ฅผ ์—ฐ์†๋œ ํ•˜๋‚˜์˜ ๋ฌถ์Œ์œผ๋กœ ๋‹ค๋ฃจ๋Š” ๊ฒƒ

โ€ป ๋ฐฐ์—ด๋ณด๋‹ค๋Š” Collectoral Class๋ฅผ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•จ (๊ฐ€๋ณ€์„ฑ์ด ์žˆ์Œ)

List, Array List, โ€ฆ

๐Ÿ“Œ
indexใ€€โ†’ใ€€๋ฐฐ์—ด์˜ ์ˆœ์„œ๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ์ˆซ์ž ๋ณ€์ˆ˜ํ…Œ์ด๋ธ”ใ€€โ†’ใ€€์‹คํ–‰ํŒŒ์ผ ์•ˆ์— ๋“ค์–ด๊ฐ
๋ฐฐ์—ด์˜ ์ธ์ˆ˜ ์ถœ๋ ฅ ๋ฐฉ์‹
  • ๊ธฐ๋ณธ๋ฐฉ์‹
for(int i = 0; i < a.length; i++)
System.out.print(a[i]);

  • ๋ฐฐ์—ด ์ „์šฉ (๋” ๋งŽ์ด ์‚ฌ์šฉํ•จ)
for(int b:a)
System.out.print(b + " ");
//intํ˜•์„ ๊ฐ€์ง„ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๊ฐœ์ˆ˜๋งŒํผ ์ถœ๋ ฅ
๋ฐฐ์—ด์˜ ์„ ์–ธ, ์ƒ์„ฑ, ์ดˆ๊ธฐํ™”/์ •์˜
์„ ์–ธ โ†’ ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜ ์„ ์–ธ
์ƒ์„ฑ๋œ ๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ
ํƒ€์ž…[] ๋ณ€์ˆ˜์ด๋ฆ„;
int[] score;
String[] name;
ํƒ€์ž… ๋ณ€์ˆ˜์ด๋ฆ„[];
int score[];
String name[];

์ƒ์„ฑ โ†’ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ• ๋‹น
๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒƒ
๐Ÿ“Œ
newใ€€โ†’ใ€€๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ์‹œ์ผœ์„œ ๊ฐ์ฒด๋ฅผ ํ˜•์„ฑํ•ด์„œ ๊ทธ ๊ฐ์ฒด๊ฐ€ ์œ„์น˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋ฅผ ํ• ๋‹น
์„ ์–ธ๊ณผ ์ƒ์„ฑ์„ ๋”ฐ๋กœ
  • ๋ณ€์ˆ˜์ด๋ฆ„ = new ํƒ€์ž…[๊ธธ์ด];
    int[] score;  //์„ ์–ธ
    score = new int[5];  //์ƒ์„ฑ
    String[] name;
    name = new String[10];
์„ ์–ธ๊ณผ ์ƒ์„ฑ์„ ํ•œ๋ฒˆ์— ํ•  ๋•Œ
  • ํƒ€์ž…[] ๋ณ€์ˆ˜์ด๋ฆ„ = new ํƒ€์ž…[๊ธธ์ด];
    int[] score = new int[5];
    String[] name = new String[10];
  • ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ๊ฐ ๋ณ€์ˆ˜ ํƒ€์ž…์˜ ๊ธฐ๋ณธ๊ฐ’์ด ์›์†Œ์˜ ๊ฐ’์ด ๋œ๋‹ค.
์ดˆ๊ธฐํ™”/์ •์˜ โ†’ ๊ฐ’ ์ž…๋ ฅ
int[] ๋ณ€์ˆ˜๋ช… = {1, 2, 3, 4, 5}  /* 20๋ฐ”์ดํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ํ™•๋ณด๋˜๊ณ  ๊ฐ 4๋ฐ”์ดํŠธ๋งˆ๋‹ค intํ˜• ๊ฐ’์ด ์ €์žฅ
																  a ๋ผ๋Š” ๋ฐฐ์—ด์€ 5๊ฐœ์˜ element(์š”์†Œ, ์›์†Œ)๋ฅผ ๊ฐ€์ง„ ๊ฒƒ์œผ๋กœ ํ™•์ •
																  = ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ํ™•์ • = ๋ฐฐ์—ด์˜ size๊ฐ€ ๋น„๊ฐ€๋ณ€์ด๋‹ค */
int [] ๋ณ€์ˆ˜๋ช… = new int[]{1, 2, 3, 4, 5}; 
//๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๊ฐ’๊นŒ์ง€ ์ •์˜
๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค
๋ฐฐ์—ด์˜ ๊ธธ์ด
  • ๋ฐฐ์—ด์€ ํ•œ๋ฒˆ ์ƒ์„ฑ ํ•˜๋ฉด ๊ธธ์ด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ
  • JVM์ด ๋ชจ๋“  ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ณ„๋„๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ ๋‹ค์Œ์œผ๋กœ ๊ธธ์ด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ
    ๋ฐฐ์—ด์ด๋ฆ„.length

    • ex) ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๋ฐ˜๋ณต๋ฌธ ๋“ฑ์— ์ž๋™์œผ๋กœ ์ ์šฉ๋˜๋„๋ก ๋งŽ์ด ์‚ฌ์šฉ ํ•จ
      int[] score = new int[6];
      for(int i = 0; i < score.length; i++)
      	Systme.out.println(score[i]);
์ถœ๋ ฅ
for๋ฌธ ์ด์šฉ
int[] iArr = { 100, 95, 80, 70, 60 };
for(int i = 0; i < iArr.length; i++) {
	System.out.println(iArr[i] +",");
}

โ‡’100,50,60,80,90,

Arrays.toString(๋ฐฐ์—ด์ด๋ฆ„) ์ด์šฉ
  • ๋ฐฐ์—ด ๋‚ด์šฉ์„ ๋ฐ”๋กœ ์ถœ๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ โ€˜ํƒ€์ž…โ€™@โ€™์ฃผ์†Œโ€™์˜ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ
    int[] iArr = { 100, 95, 80, 70, 60 };
    System.out.print(iArr);

    โ‡’[I@515f550a

  • Arrays.toString() ์‚ฌ์šฉ ์œ„ํ•ด์„œ๋Š” import java.util.Arrays; ํ•„์š”
    import java.util.Arrays;
    
    int[] iArr = { 100, 95, 80, 70, 60 };
    System.out.print(Arrays.toString(iArr));

    โ‡’ [100, 50, 60, 80, 90]

2์ฐจ์› ๋ฐฐ์—ด
๋ฐฐ์—ด์˜ ์„ ์–ธ, ์ƒ์„ฑ, ์ดˆ๊ธฐํ™”/์ •์˜
์„ ์–ธ โ†’ ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜ ์„ ์–ธ
์ƒ์„ฑ๋  ๋ฐฐ์—ด์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์ฐธ์กฐ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ
ํƒ€์ž…[][] ๋ณ€์ˆ˜์ด๋ฆ„;
int[][] score;
String[][] name;
ํƒ€์ž… ๋ณ€์ˆ˜์ด๋ฆ„[][];
int score[][];
String name[][];

ํƒ€์ž…[] ๋ณ€์ˆ˜์ด๋ฆ„[];
int[] score[];
String[] name[];
์ƒ์„ฑ โ†’ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ํ• ๋‹น
๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒƒ
๐Ÿ“Œ
newใ€€โ†’ใ€€๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ์‹œ์ผœ์„œ ๊ฐ์ฒด๋ฅผ ํ˜•์„ฑํ•ด์„œ ๊ทธ ๊ฐ์ฒด๊ฐ€ ์œ„์น˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋ฅผ ํ• ๋‹น
์„ ์–ธ๊ณผ ์ƒ์„ฑ์„ ๋”ฐ๋กœ
  • ๋ณ€์ˆ˜์ด๋ฆ„ = new ํƒ€์ž…[๊ธธ์ด];
    int[][] score;  //์„ ์–ธ
    score = new int[3][4];  //์ƒ์„ฑ
์„ ์–ธ๊ณผ ์ƒ์„ฑ์„ ํ•œ๋ฒˆ์— ํ•  ๋•Œ
  • ํƒ€์ž…[][] ๋ณ€์ˆ˜์ด๋ฆ„ = new ํƒ€์ž…[ํ–‰_๊ฐœ์ˆ˜][์—ด_๊ฐœ์ˆ˜];
    int[][] score = new int[3][4];
  • ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ๊ฐ ๋ณ€์ˆ˜ ํƒ€์ž…์˜ ๊ธฐ๋ณธ๊ฐ’์ด ์›์†Œ์˜ ๊ฐ’์ด ๋œ๋‹ค.
์ดˆ๊ธฐํ™”/์ •์˜ โ†’ ๊ฐ’ ์ž…๋ ฅ
int[][] arr = new int[][]{{1, 2, 3}, {4, 5, 6}};
  • ํ–‰์„ ๊ตฌ๋ถ„ํ•ด์„œ ์“ธ ์ˆ˜๋„ ์žˆ์Œ
    int[][] arr = {
    									{1, 2, 3},
    									{4, 5, 6}
    								};
int[][] arr = {{1, 2, 3}, {4, 5, 6}}; //new int[][]์ƒ๋žต

๋ฐ˜์‘ํ˜•

1. ๋ณ€์ˆ˜ ํƒ€์ž… ๊ฐ„์˜ ๋ณ€ํ™˜

1) ์ˆซ์ž ↔ ๋ฌธ์ž : ‘0’์˜ ์—ฐ์‚ฐ

  1. ์ˆซ์ž ํ˜• + ‘0’ = ๋ฌธ์ž ํ˜•ex) 3 + ‘0’ = ‘3’
  1. ๋ฌธ์ž ํ˜• - ‘0’ = ์ˆซ์ž ํ˜•ex) ‘3’ - ‘0’ = 3

2) ์ˆซ์ž ๋˜๋Š” ๋ฌธ์ž → ๋ฌธ์ž์—ด : ๋นˆ ๋ฌธ์ž์—ด ๋”ํ•˜๊ธฐ

  1. ์ˆซ์ž ํ˜• + “” = ๋ฌธ์ž์—ดex) 3 + “” = “3”
  1. ๋ฌธ์ž ํ˜• + “” = ๋ฌธ์ž์—ดex) ‘3’ + “” = “3”

3) ๋ฌธ์ž์—ด → ์ˆซ์ž : parse ๋ฉ”์„œ๋“œ ์ด์šฉ

  1. ์ˆซ์ž ํ˜•์˜ ๋ž˜ํผํด๋ž˜์Šค.parse์ˆซ์žํ˜•(๋ฌธ์ž์—ด) ⇒ ์ˆซ์ž ํ˜•ex) Interger.parseInt(”3”) = 3

 

2. ํ˜• ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž ์ด์šฉ : (๋ณ€ํ™˜ํ• ํƒ€์ž…)ํ”ผ์—ฐ์‚ฐ์ž

  1. int ↔ char : ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์žํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ณ€ํ™˜ ๋œ๋‹ค.
  1. ์ •์ˆ˜ํ˜• ↔ ์‹ค์ˆ˜ํ˜•
    • ์ •์ˆ˜ํ˜• → ์‹ค์ˆ˜ํ˜• : ์†Œ์ˆ˜์  ์ดํ•˜ 0
    • ์‹ค์ˆ˜ํ˜• → ์ •์ˆ˜ํ˜• : ์†Œ์ˆ˜์  ์ดํ•˜ ๋ฒ„๋ฆผ

2-1. ์ž๋™ ํ˜•๋ณ€ํ™˜ : ๊ฐ’ ์†์‹ค์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์—†์„ ๋•Œ ํ˜• ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋”๋ผ๋„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ˜•๋ณ€ํ™˜์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ด ์ฃผ๋Š” ๊ฒƒ

โš ๏ธ๊ฐ’ ์†์‹ค์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์„ ๋•Œ๋Š” ํ˜• ๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ!

โš ๏ธchar์™€ short์€ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๋Š” ๊ฐ™์œผ๋‚˜ ํ‘œํ˜„ ๋ฒ”์œ„๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™ ํ˜• ๋ณ€ํ™˜์ด ์ผ์–ด๋‚˜์ง€ ์•Š์Œ

 

 

3. ์‚ฐ์ˆ  ๋ณ€ํ™˜ : ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์—ฐ์‚ฐ ์ „์— ํ”ผ ์—ฐ์‚ฐ์ž์˜ ํƒ€์ž…์„ ์ผ์น˜ ์‹œํ‚ค๋Š” ๊ฒƒ

<๋ณ€ํ™˜ ๊ทœ์น™>

  1. ํ”ผ ์—ฐ์‚ฐ์ž๋“ค์˜ ํƒ€์ž…์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ, ๊ฐ’ ์†์‹ค์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํƒ€์ž…์„ ์ผ์น˜ ์‹œํ‚จ๋‹ค.
  1. int ๋ณด๋‹ค ์ž‘์€ ํฌ๊ธฐ์˜ ํ”ผ ์—ฐ์‚ฐ์ž๋“ค์€ int ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
    • ์—ฐ์‚ฐ ์ค‘์˜ Overflow ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ๋ง‰๊ธฐ ์œ„ํ•จ

 

๋ฐ˜์‘ํ˜•
๋ณ€์ˆ˜(variable)
๐Ÿ’ก
Garbage Collection : garbage๊ฐ€ ๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋น„์›Œ์ฃผ๋Š” ๊ฒƒ
  • ( โžก๏ธ ์ž๋™์œผ๋กœ ์ง„ํ–‰ํ•˜๋Š”)Managed Program : Java, Python
  • ( โžก๏ธ ์ˆ˜๋™์œผ๋กœ ์ง„ํ–‰ํ•ด์•ผํ•˜๋Š”)Unmanaged Program : C, Fortran
  • ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„(์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์Œ)
  • ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„
  • ์ ์ ˆํ•œ ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉ
์„ ์–ธ๊ณผ ์ €์žฅ
์„ ์–ธ
๋ณ€์ˆ˜ํƒ€์ž… ๋ณ€์ˆ˜์ด๋ฆ„;

 

  • ex)
    int x;

 

์ €์žฅ
๋ณ€์ˆ˜์ด๋ฆ„ = ๊ฐ’;
  • ex)
    x = 5;

 

์„ ์–ธ + ์ €์žฅ
๋ณ€์ˆ˜ํƒ€์ž… ๋ณ€์ˆ˜์ด๋ฆ„ = ๊ฐ’;
  • ex)
    int x = 5;

 

๋ณ€์ˆ˜์˜ ํƒ€์ž…
์ผ๋ฐ˜ํ˜• (๊ธฐ๋ณธ ํ˜•,Primitive Type); ์‹ค์ œ ๊ฐ’(data)์„ ์ €์žฅ
์ข…๋ฅ˜\ํฌ๊ธฐ 1 byte 2 byte 4 byte 8 byte
๋…ผ๋ฆฌํ˜• boolean      
๋ฌธ์žํ˜•   char    
์ •์ˆ˜ํ˜• byte short int long
์‹ค์ˆ˜ํ˜•     float double
์ •์ˆ˜ํ˜•
  • ์ข…๋ฅ˜
    • int (defualt)
    • short
    • byte ; ํŒŒ์ผ ์ „์†ก ์‹œ์—๋‚˜ ๊ฐ€๋” ์‚ฌ์šฉ
    • long
  • ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ
    ํ•ด๋‹น ํƒ€์ž…์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ๋ฒ”์œ„๋ฅผ ๋„˜์–ด ์„œ๋Š” ๊ฒƒ

    → ์˜ค๋ฅ˜ ๋‚˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ๊ฐ’์ด ๋‚˜์˜ด

    • Unsigned
      • ํ‘œํ˜„๊ฐ€๋Šฅ ์ตœ๋Œ€๊ฐ’ + 1 ⇒ ์ตœ์†Œ๊ฐ’
      • ํ‘œํ˜„๊ฐ€๋Šฅ ์ตœ์†Œ๊ฐ’ - 1 ⇒ ์ตœ๋Œ€๊ฐ’
    • Signed
      •  
์‹ค์ˆ˜ํ˜•
  • float
    • ํ‘œํ˜„ : X.Xf
  • double (default)
๋ฌธ์žํ˜•
  • char ; size 2byte
๋…ผ๋ฆฌํ˜•
  • Boolean

 

์ฐธ์กฐํ˜•(Reference Type); ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ
  • ์—ด๊ฑฐํ˜•
  • ํด๋ž˜์Šคํ˜•
  • ๋ฐฐ์—ด
  • ์ธํ„ฐํŽ˜์ด์Šคํ˜•
์ƒ์ˆ˜(constant)
  • ํ•œ ๋ฒˆ๋งŒ ๊ฐ’์„ ์ €์žฅ ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜
๋ฆฌํ„ฐ๋Ÿด(literal)
๊ทธ ์ž์ฒด๋กœ ๊ฐ’์„ ์˜๋ฏธ ํ•˜๋Š” ๊ฒƒ
๋ฆฌํ„ฐ๋Ÿด์˜ ํƒ€์ž…๊ณผ ์ ‘๋ฏธ์‚ฌ
์ •์ˆ˜ํ˜•๊ณผ ์‹ค์ˆ˜ํ˜•์— ์—ฌ๋Ÿฌ ํƒ€์ž…์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๋ฏธ์‚ฌ๋กœ ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž… ๊ตฌ๋ถ„
๋ฌธ์ž์—ด ๊ฒฐํ•ฉ
  • ๋ง์…ˆ(+) ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•œ์ชฝ์ด String์ด๋ฉด ํ•œ์ชฝ์„ ๋จผ์ € String์œผ๋กœ ๋ณ€ํ™˜ ํ›„ ๋‘ String์„ ๊ฒฐํ•ฉ ํ•จ.
  • ์—ฐ์‚ฐ๋ฐฉํ–ฅ : ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ
ํƒ€์ž… ๊ฐ„์˜ ๋ณ€ํ™˜
  • ์ˆซ์ž → ๋ฌธ์ž : ๋ฌธ์ž๋ฅผ ๋”ํ•œ๋‹ค

    ex) (char)(3 + ‘0’) ⇒ ‘3’

  • ๋ฌธ์ž → ์ˆซ์ž : ๋ฌธ์ž๋ฅผ ๋บ€๋‹ค

    ex) ์ˆซ์ž - ‘0’

  • ์ˆซ์ž → ๋ฌธ์ž์—ด : ๋นˆ ๋ฌธ์ž์—ด์„ ๋”ํ•œ๋‹ค

    ex) ์ˆซ์ž + “”

  • ๋ฌธ์ž์—ด → ์ˆซ์ž : parse ํ•จ์ˆ˜ ์‚ฌ์šฉ
    • ์ •์ˆ˜ํ˜•์œผ๋กœ : Integer.parseInt()
    • ์‹ค์ˆ˜ํ˜•์œผ๋กœ : Double.parseDouble()
  • ๋ฌธ์ž์—ด → ๋ฌธ์ž : charAt(0) ํ•จ์ˆ˜ ์‚ฌ์šฉ

    ex) “3”.charAt(0) ⇒ ‘3’

  • ๋ฌธ์ž → ๋ฌธ์ž์—ด : ๋นˆ ๋ฌธ์ž์—ด์„ ๋”ํ•œ๋‹ค

    ex) ‘3’ + “” ⇒ “3”

ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž ์ด์šฉ
ํ˜•๋ณ€ํ™˜ : ๋ณ€์ˆ˜ ๋˜๋Š” ์ƒ์ˆ˜์˜ ํƒ€์ž…์„ ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ ํ•˜๋Š” ๊ฒƒ
  • ์‚ฌ์šฉ
    (ํƒ€์ž…)ํ”ผ์—ฐ์‚ฐ์ž;
    double d = 85.4;
    int score = (int)d;
  • ์˜ˆ์‹œ
    ๋ณ€ํ™˜ ์ˆ˜์‹ ๊ฒฐ๊ณผ
    int → char (char)65 ‘A'
    char → int (int)'A' 65
    float → int (int)1.6f 1
    int → float (float)10 10.0f
์ž๋™ ํ˜•๋ณ€ํ™˜
๊ธฐ์กด์˜ ๊ฐ’์„ ์ตœ๋Œ€ํ•œ ๋ณด์กดํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ž…์œผ๋กœ ์ž๋™ ๋ณ€ํ™˜

โœ๏ธ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ์˜ ํ˜• ๋ณ€ํ™˜์€ ํ˜•๋ณ€ํ™˜ ์—ฐ์‚ฐ์ž๋ฅผ ์จ์•ผ ํ•œ๋‹ค.

์„ ์–ธ ์œ„์น˜์— ๋”ฐ๋ฅธ ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜
๋ณ€์ˆ˜ ์ข…๋ฅ˜ ์„ ์–ธ ์œ„์น˜ ์ƒ์„ฑ ์‹œ๊ธฐ ์„ค๋ช… ์„ ์–ธ ์‚ฌ์šฉ
๋ฉค๋ฒ„๋ณ€์ˆ˜ ํด๋ž˜์Šค ๋ณ€์ˆ˜ class variable ํด๋ž˜์Šค ์˜์—ญ ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐˆ ๋•Œ (๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ) ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณตํ†ต๋œ ์ €์žฅ ๊ณต๊ฐ„์„ ๊ณต์œ ํ•˜๋Š” ๋ณ€์ˆ˜๋กœ ๋ชจ๋“ ์ธ์Šคํ„ด์Šค์—์„œ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง static ๋ณ€์ˆ˜ํ˜• ๋ณ€์ˆ˜๋ช…; ํด๋ž˜์Šค๋ช….๋ณ€์ˆ˜๋ช…
๋ฉค๋ฒ„๋ณ€์ˆ˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ instance variable ํด๋ž˜์Šค ์˜์—ญ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์„ ๋•Œ ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๋ณ„๋„์˜ ์ €์žฅ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋ฏ€๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋ณ€์ˆ˜๋ช… ๋ณ€์ˆ˜ํ˜•; ๊ฐ์ฒด๋ช….๋ณ€์ˆ˜์˜
์ง€์—ญ ๋ณ€์ˆ˜ local variable ํด๋ž˜์Šค ์™ธ์˜ ์˜์—ญ (๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž, ์ดˆ๊ธฐํ™” ๋ธ”๋ก ๋‚ด๋ถ€) ๋ณ€์ˆ˜ ์„ ์–ธ๋ฌธ์ด ์ˆ˜ํ–‰๋˜์—ˆ์„ ๋•Œ ์ง€์—ญ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ๋ธ”๋Ÿญ{}์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅ, ๋ธ”๋Ÿญ์„ ๋ฒ—์–ด๋‚˜๋ฉด ์†Œ๋ฉธ ๋ณ€์ˆ˜๋ช… ๋ณ€์ˆ˜ํ˜•; ๋ณ€์ˆ˜๋ช…
class ExampleClass{
	int intEx;
	static int c_intEx;
	
	void ExampleMethod() {
		int intLocal = 0;
	}
}

 

  • inEx ⇒ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜
  • c_intEx ⇒ ํด๋ž˜์Šค ๋ณ€์ˆ˜
  • intLocal ⇒ ์ง€์—ญ๋ณ€์ˆ˜

 

๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™”
  • ๋ฉค๋ฒ„๋ณ€์ˆ˜
    • ์ž๋™ ์ดˆ๊ธฐํ™”
    • ๋ช…์‹œ์  ์ดˆ๊ธฐํ™”
      • ๋Œ€์ž… ์—ฐ์‚ฐ์ž(=) ์ด์šฉ
        int A = 4;  //๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”
        Example e = new Example();  //์ฐธ์กฐํ˜• ๋ณ€์ˆ˜
    • ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ
      • {} : ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ
      • static {} : ํด๋ž˜์Šค ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ
    • ์ƒ์„ฑ์ž
      • ์ธ์Šคํ„ด์Šค๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”
  • ์ง€์—ญ๋ณ€์ˆ˜๋Š” ์‚ฌ์šฉ์ „ ๋ฐ˜๋“œ์‹œ ์ง์ ‘ ์ดˆ๊ธฐํ™” ํ•ด์ค˜์•ผ ํ•จ
์ ‘๊ทผ ์ œํ•œ์ž
private
์™ธ๋ถ€์—์„œ ํด๋ž˜์Šค ๋ณ€์ˆ˜์— ์ง์ ‘ ์ ‘๊ทผ โŒ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์—์„œ๋„ ์ง์ ‘ ์ ‘๊ทผ โŒ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผ โญ•
  • private ํด๋ž˜์Šค๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•(๋ฉ”์†Œ๋“œ)
    • Getter Method
      • ํด๋ž˜์Šค ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ(๊ฐ’) ์ฝ๊ธฐ/๋ถˆ๋Ÿฌ์˜ค๊ธฐ
      public int getA(){
      	return this.a;
      }

       

      ๐Ÿ“Œ
      ํ†ต์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ ‘๊ทผ์ œํ•œ๋œ ํด๋ž˜์Šค๋ณ€์ˆ˜๋ฅผ ์ฝ๋Š” ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ get์ฒซ๊ธ€์ž๋ฅผ๋Œ€๋ฌธ์ž๋กœ์“ดํด๋ž˜์Šค๋ณ€์ˆ˜๋ช…

       

    • Setter Method
      • ํด๋ž˜์Šค ๋ณ€์ˆ˜์˜ ๊ฐ’(๋ฐ์ดํ„ฐ) ์“ฐ๊ธฐ
      public void setA(int a){
      	this.a = a;
      }
      ๐Ÿ“Œ
      ํ†ต์ƒ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ ‘๊ทผ์ œํ•œ๋œ ํด๋ž˜์Šค๋ณ€์ˆ˜๋ฅผ ์ฝ๋Š” ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ setํด๋ž˜์Šค๋ช…ํด๋ž˜์Šค์ฒซ๊ธ€์ž๋ฅผ๋Œ€๋ฌธ์ž๋กœ์“ดํด๋ž˜์Šค๋ณ€์ˆ˜๋ช…
default
- ๋™์ผํ•œ ํŒจํ‚ค์ง€๋‚ด์˜ ํด๋ž˜์Šค๋“ค๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ - ์ƒ๋žต ๊ฐ€๋Šฅ - ๋™์ผํ•œ ํŒจํ‚ค์ง€ ๋‚ด์—์„œ๋Š” public๊ณผ ๊ฐ™์Œ
public
- ๋ชจ๋“  ์™ธ๋ถ€ ์ฝ”๋“œ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ
protected
๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด์˜ ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผโญ• ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์žˆ๋”๋ผ๋„ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค์—์„œ๋Š” ์ ‘๊ทผ โญ• ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์˜ ์ƒ์†๋ฐ›์ง€ ์•Š์€ ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผ โŒ

 

๋ฌธ์ž์™€ ๋ฌธ์ž์—ด(String)
๋ฌธ์ž
์ •์˜
char ch = 'A';
  • ์ž‘์€ ๋”ฐ์˜ดํ‘œ’ , ‘์‚ฌ์šฉ
  • ๊ธ€์ž ํ•˜๋‚˜ ๋งŒ ๊ฐ€๋Šฅ
  • ๋นˆ๋ฌธ์ž ์„ ์–ธ ๋ถˆ๊ฐ€ ‘’;
๋ฌธ์ž์—ด
์ •์˜
String s1 = "AB";
๋˜๋Š”
String s2 = new String("AB");

 

  • ํฐ๋”ฐ์˜ดํ‘œ “, “์‚ฌ์šฉ
  • ๋นˆ๋ฌธ์ž์—ด ์„ ์–ธ ๊ฐ€๋Šฅ “”;
์—ฐ์‚ฐ

โš ๏ธ์™ผ์ชฝ๋ถ€ํ„ฐ ์ง„ํ–‰ ๋˜๋ฏ€๋กœ ์ˆœ์„œ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฆ„

  • ex)
    "" + 7 + 7 -> "7" + 7 -> "7" + "7" -> "77"
    7 + 7 + "" -> 14 + "" -> "14" + "" -> "14"
๋ฌธ์ž์—ด + any_type ⇒ ๋ฌธ์ž์—ด
n
์ž…๋ ฅ ๋ฐ›๊ธฐ

import java.util.Scanner;	//scannerํด๋ž˜์Šค์žˆ๋Š” lib

//main method๋‚ด //
public class Scanner_01 {

	public static void main(String[] args) {

			Scanner scanner = new Scanner(System.in);	//Scanner ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ์ƒ์„ฑ
			
			String input = scanner.nextLine();
๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ ๊ฐ’
์ž๋ฃŒํ˜• ๊ธฐ๋ณธ๊ฐ’
boolean FALSE
char ‘\u0000'
byte, short, int 0
long 0L
float 0.0f
double 0.0d or 0.0
์ฐธ์กฐํ˜• null
๋ฐ˜์‘ํ˜•

1. getElementsBy~ ()์ด์šฉ

document.getElementsBytagName('ํƒœ๊ทธ๋ช…')

document.getElementsByClassName('ํด๋ž˜์Šค๋ช…')

document.getElementById('์•„์ด๋””')

2. querySelector()์ด์šฉ

document.querySelector('ํƒœ๊ทธ๋ช…')

document.querySelector('.ํด๋ž˜์Šค๋ช…')

document.querySelector('#์•„์ด๋””')

 

๋ฐ˜์‘ํ˜•

๋ฐ˜์‘ํ˜•

 

๐Ÿšจerror: class ํด๋ž˜์Šค๋ช… is public, should be declared in a file named ํŒŒ์ผ๋ช….java

[์ผ๋ฐ˜์ ]

โ“์›์ธ : ํด๋ž˜์Šค๋ช…๊ณผ ํŒŒ์ผ๋ช…์ด ์ผ์น˜ํ•˜์ง€ ์•Š์Œ.

โ—ํ•ด๊ฒฐ : ํด๋ž˜์Šค๋ช…๊ณผ ํŒŒ์ผ๋ช…์„ ๊ฐ™๊ฒŒ ๋ฐ”๊ฟ”์ฃผ๊ธฐ

 

[๋‹ค๋ฅธ ๊ฒฝ์šฐ]

์ด ์œ„์น˜์— ์ €์žฅํ•  ๊ถŒํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ถŒํ•œ์„ ์–ป์œผ๋ ค๋ฉด ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค.

 

๋Œ€์‹  ๋ฌธ์„œ ํด๋”์— ์ €์žฅํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

 

โ“์›์ธ : .java ํŒŒ์ผ ์ €์žฅ ์‹œ์— ๋“œ๋ผ์ด๋ธŒ์— ๊ถŒํ•œ์ด ์—†์–ด์„œ .javaํŒŒ์ผ์„ ๋‹ค๋ฅธ๊ณณ์— ์ €์žฅํ•œ ํ›„ ์œ„์น˜๋ฅผ ์˜ฎ๊ธด ํ›„ ์ปดํŒŒ์ผ ์‹œ๋„

โ—ํ•ด๊ฒฐ : ์“ฐ๊ธฐ ๊ถŒํ•œ ๋ณ€๊ฒฝ ํ›„ ๋ฐ”๋กœ ๋“œ๋ผ์ด๋ธŒ์— ์ €์žฅ

ใ€€ใ€€โ””> ์ฐธ์กฐ : https://m.blog.naver.com/toruin84/222866356784

 

๋ฐ˜์‘ํ˜•

*๋””์ž์ธ๋งŒ์„ ์œ„ํ•œ ํƒœ๊ทธ 2๊ฐ€์ง€*

<div> : block element

<span> : inline element

 

๊ทธ๋ฆฌ๋“œ ์‚ฌ์šฉ

#id{
	display : grid;
  	grid-template-columns: 150px 1fr; <!---์ฒซ๋ฒˆ์งธ ๊ทธ๋ฆฌ๋“œ์˜ ๋„“์ด 1fr(ํ™”๋ฉด ๋ถ„ํ• , 2fr, 3fr ๋“ฑ)
    }
    
#id #first {	<!--id์•ˆ์— first๋ผ๋Š” div ์„ ํƒ--!>
}
<div id = "id">
	<div id = "first">
   		content1
    </div>
    <div>
   		content2
    </div>
</div>

 

๋ฐ˜์‘ํ˜•

'Programming Languages > CSS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

7. CSS ์„ ํƒ์ž์˜ ๊ธฐ๋ณธ  (0) 2023.01.09
4. CSS์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•  (0) 2023.01.09

1. ์„ ํƒ์ž๋กœ CLASS๋ฅผ ์‚ฌ์šฉ : .class์ด๋ฆ„

ex) ํ‹€๋ฆฐ ์˜ˆ - ์ ์šฉ ์•ˆ๋จ

<style>
	saw{	/!--saw ๋ผ๋Š” ํƒœ๊ทธ๋ฅผ ์„ ํƒ--!/
    ....
    }
</style>

<li><class = "saw"> HTML </li>
<li><class = "saw"> CSS </li>
ex) ์˜ฌ๋ฐ”๋ฅธ ์˜ˆ

<style>
	.saw{		<!-- class๊ฐ€ saw์ธ ํƒœ๊ทธ๋ฅผ ์„ ํƒ --!>
    ....
    }
</style>

<li><class = "saw"> HTML </li>
<li><class = "saw"> CSS </li>

 

 

2. class ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์„ค์ •, ์ œ์–ด ๊ฐ€๋Šฅ

ex)

class = " saw active"

.active{

}

.saw{

}

=>saw์„ ํƒ์ž์˜ property ์ ์šฉ

 

๋‹จ, ๋ช…๋ น์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ ์ ์šฉ์ด ๋‹ค๋ฅด๊ฒŒ ๋จ.

 

3. ID ์‚ฌ์šฉ : #id์ด๋ฆ„

ex)

class = " saw" id="active"

#active{

}

.saw{

}

=>active์„ ํƒ์ž์˜ property ์ ์šฉ

โ€ป์„ ํƒ์ž ์šฐ์„  ์ˆœ์œ„ : id>class>tag | ๊ฐ™์€ ์„ ํƒ์ž ์œ ํ˜•์€ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์ด ์ ์šฉ

โ˜…id๋Š” ํŽ˜์ด์ง€ ๋‚ด์—์„œ ํ•œ๋ฒˆ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จโ˜…

ex)
<!--๊ฐ€๋Šฅ--!>
<style>
	.a{
    }

<p><class = "a">Hi</p>
<p><class = "a">Hello</p>

<!--๋ถˆ๊ฐ€๋Šฅ--!>
<p><id = "a">Hi</p>
<p><id = "a">Hello</p>

<!--๊ฐ€๋Šฅ--!>
<p><id = "a">Hi</p>
<p><id = "b">Hello</p>

 

|CSS Selectors|

https://www.w3schools.com/cssref/css_selectors.php

 

๋ฐ˜์‘ํ˜•

'Programming Languages > CSS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

10. ๊ทธ๋ฆฌ๋“œ ์†Œ๊ฐœ  (0) 2023.01.09
4. CSS์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•  (0) 2023.01.09

์›น์— css๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•

1. ํ—ค๋“œ์— ์Šคํƒ€์ผ ํƒœ๊ทธ๋ฅผ ์“ด๋‹ค.

2. ์Šคํƒ€์ผ ์†์„ฑ์„ ์“ด๋‹ค.

 

https://www.youtube.com/@coohde

๋ฐ˜์‘ํ˜•

'Programming Languages > CSS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

10. ๊ทธ๋ฆฌ๋“œ ์†Œ๊ฐœ  (0) 2023.01.09
7. CSS ์„ ํƒ์ž์˜ ๊ธฐ๋ณธ  (0) 2023.01.09

+ Recent posts