Home > Backend Development > ๐Ÿ“š[Backend Development] ๋นŒ๋” ํŒจํ„ด ์‚ฌ์šฉ์‹œ @AllArgsConstructor(access = AccessLevel.PRIVATE)์„ ํ™œ์šฉํ•˜๋Š” ์ด์œ 

๐Ÿ“š[Backend Development] ๋นŒ๋” ํŒจํ„ด ์‚ฌ์šฉ์‹œ @AllArgsConstructor(access = AccessLevel.PRIVATE)์„ ํ™œ์šฉํ•˜๋Š” ์ด์œ 
Backend Ddevelopment Springboot Framework

โ€œ๐Ÿ“š[Backend Development] ๋นŒ๋” ํŒจํ„ด ์‚ฌ์šฉ์‹œ @AllArgsConstructor(access = AccessLevel.PRIVATE)์„ ํ™œ์šฉํ•˜๋Š” ์ด์œ โ€

๐ŸŽ Intro.

  • ๋นŒ๋” ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ๋•Œ, @AllArgsConstructor(access = AccessLevel.PRIVATE)๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

โœ…1๏ธโƒฃ @AllArgsConstructor๊ฐ€ ํ•˜๋Š” ์—ญํ• .

  • @AllArgsConstructor๋Š” ๋ชจ๋“  ํ•„๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ๋นŒ๋” ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์ƒ์„ฑ์ž๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  ๋นŒ๋”๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ž…๋‹ˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ, ์ƒ์„ฑ์ž์˜ ์ ‘๊ทผ ์ œํ•œ์„ private์œผ๋กœ ์„ค์ •ํ•˜๋ฉด, ๋นŒ๋”๋ฅผ ํ†ตํ•œ ์ƒ์„ฑ๋งŒ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โœ…2๏ธโƒฃ ๋นŒ๋” ํŒจํ„ด ์ ์šฉ ์‹œ, @AllArgsConstructor(access = AccessLevel.PRIVATE)๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

โŒ ์ž˜๋ชป๋œ ์˜ˆ์ œ (๋นŒ๋” ํŒจํ„ด ์‚ฌ์šฉํ–ˆ์ง€๋งŒ, ์ƒ์„ฑ์ž๋„ public)

@AllArgsConstructor // (๊ธฐ๋ณธ๊ฐ’์ด PUBLIC)
@Builder
public class Comment {
    private Long commentId;
    private String content;
    private Long articleId;
    private Long parentCommentId;
    private Long writerId;
    private Boolean deleted;
    private LocalDateTime createdAt;
}

โœ… ๋ฌธ์ œ์ :

  • @AllArgsConstructor์˜ ๊ธฐ๋ณธ ์ ‘๊ทผ ์ œ์–ด์ž๊ฐ€ public์ด๋ฏ€๋กœ, ๋นŒ๋”๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ƒ์„ฑ์ž๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ.
  • ๋นŒ๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์ ์ด ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์„ ํƒ์ ์œผ๋กœ ํ•„๋“œ๋ฅผ ์ดˆ๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•จ์ธ๋ฐ, ์ƒ์„ฑ์ž๊ฐ€ public์ด๋ฉด ๋นŒ๋” ์‚ฌ์šฉ์„ ๊ฐ•์ œํ•  ์ˆ˜ ์—†์Œ.

๐Ÿ› ๏ธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•(@AllArgsConstructor(access = AccessLevel.PRIVATE))

@AllArgsConstructor(access = AccessLevel.PRIVATE) // ์ƒ์„ฑ์ž๋ฅผ PRIVATE์œผ๋กœ ์„ค์ •
@Builder
public class Comment {
    private Long commentId;
    private String content;
    private Long articleId;
    private Long parentCommentId;
    private Long writerId;
    private Boolean deleted;
    private LocalDateTime createdAt;
}

โœ… ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด:

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

โœ…3๏ธโƒฃ ์ •๋ฆฌ - ํ•„์š”ํ•œ ์ด์œ .

๋ฌธ์ œ์  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
@AllArgConstructor ๊ธฐ๋ณธ๊ฐ’์ด public์ด๋ฏ€๋กœ, ์ง์ ‘ ์ƒ์„ฑ์ž ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•จ. @AllArgsConstructor(access = AccessLevel.PRIVATE)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ์ž ์ ‘๊ทผ ์ œํ•œ.
๋นŒ๋”๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์ƒ์„ฑ์ž๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์–ด ์ผ๊ด€์„ฑ์ด ๋–จ์–ด์ง. ๋นŒ๋”๋ฅผ ๊ฐ•์ œํ•˜์—ฌ ๊ฐ€๋…์„ฑ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ž„.
๊ฐ์ฒด ํ•„๋“œ๊ฐ€ ๋งŽ์•„์งˆ ๊ฒฝ์šฐ, ์ƒ์„ฑ์ž ํ˜ธ์ถœ๋ณด๋‹ค ๋นŒ๋” ํŒจํ„ด์ด ๋” ์œ ๋ฆฌํ•จ. ๋นŒ๋”๋ฅผ ๊ฐ•์ œํ•˜์—ฌ ๋” ๊ฐ€๋…์„ฑ์ด ์ข‹์€ ์ฝ”๋“œ ์œ ์ง€ ๊ฐ€๋Šฅ.
  • โœ… ์ฆ‰, @AllArgsCOnstructor(access = AccessLevel.PRIVATE)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๋นŒ๋”๋ฅผ ํ†ตํ•œ ๊ฐ์ฒด ์ƒ์„ฑ์„ ๊ฐ•์ œํ•˜์—ฌ ์ฝ”๋“œ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.